Sizeable RAMDisk version 1.10 for XMS memory only Author Marko Kohtala PUBLIC DOMAIN No rights reserved. All parts of this product may be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, protocopying, recording, or otherwise, without written permission from the author. No patent liability is assumed with respect to the use of the information contained herein. While every precaution has been taken in the preparation of this product, the author assumes no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the product documented herein. CONTENTS 1. Publishing purpose, features included and recognised missing 2. Files in this release 3. Usage 4. Technical data for further development 5. Last words 1. PUBLISHING PURPOSE, FEATURES INCLUDED AND RECOGNISED MISSING This RAM disk driver is published in the hope we will get a really good RAM disk that is entirely public domain. I do not intend to make it all out myself but rather hope there is out there someone who is willing to participate in my work. This RAM disk currently supports the following features: * XMS (Extended memory on 286 and up) support - no other memory supported - yet * Resizeable/removable - destructive * Configurable - sector size - cluster size - root directory entry count - number of FATs * Write protection * DOS versions from 3.00 to 5.x (tested only with DOS 5.0) What I would like to see added: * EMS support * UMB support * Bank-Switch memory support ("The Last Byte" by Key Software) * Low memory support * Any combinations of those above (Bank-Switch+XMS/EMS mostly) * Resizing of the disk without loosing disk contents 2. FILES IN THIS RELEASE The following material is distributed in this release: SRDISK.DOC this document SRDISK.C disk formatter source code for Turbo C++ 1.0 RDISK.ASM the device driver source code for XMS RDISK.SYS the compiled device driver SRDISK.EXE formatter program for the RAM disk 3. USAGE To use the RAM disk, you must have the device driver installed at boot time. This can be done by copying the RDISK.SYS to your root directory and including the line DEVICE=RDISK.SYS to your CONFIG.SYS file. After this change, when you boot your machine you should see a sign-on message close like "Sizeable RAMDisk version x.xx virtual drive d:" without any annoying error messages. If you see error messages, you may have forgotten to install the XMS driver (eg. HIMEM.SYS), or you have improper DOS version or something. Try to fix the problem. If you fail... sorry. If no errors are detected, you have no ramdisk. If you try to use that disk mentioned on the sign-on message, you'll notice the disk is not ready. That is because the ramdisk has not been enabled yet. For that you need the SRDISK.EXE. The disk can be enabled by, for example, using command "SRDISK d: 1024" which will make disk d: a 1024K disk. The SRDISK is self documented. You'll get the documentation by typing at the DOS prompt "SRDISK /?" and hitting enter. 4. TECHNICAL DATA FOR FURTHER DEVELOPMENT The job is split between the device driver and the SRDISK program this way: Device driver does: * What ever a RAM disk driver is expected by the DOS to do * Support IOCTL calls using the one defined data packet. The packet contains the following data: - BIOS parameter block for the drive - disk size in K-bytes - read/write access flags (read flag is actually enabled flag) - media status byte to tell if the media has been changed - number of open files on drive - pointer to the sector read/write function in the driver * Allocate, reallocate and free what ever disk memory is used by the driver SRDISK does: * Send the driver the new disk format * Format the new disk i.e. write the boot sector, FAT(s) and root directory according to the format sent to driver I've done it this way because I did not want to bother myself adding the SRDISK functions to the driver too. The sources are somewhat documented. 5. LAST WORDS Although no rights are reserved, I HOPE you will send any modified versions, new drivers, better documentation, bug reports, suggestions and your love (preferably female) to me. I'd like the modifications to sources as patches to some version the number of which you should tell. Make sure every material you contribute is in public domain. I do not want to add any copyright texts to this product. While I was starting this thing, I tried to find some PD sources where to start and found none - I only got frustrated. I hope to fix that too. I'll make a list of every people contributing material to this product and ship it with further releases. You can contact me by sending E-mail from Internet, Bitnet etc. to 'mkohtala@niksula.hut.fi' CompuServe to '>INTERNET:mkohtala@niksula.hut.fi' or by calling Airline QBBS, 24H, HST, V.32, V.42, MNP, +358-0-8725380, and leaving mail to me, Marko Kohtala.