Super Virtual Disk (SVDisk)

Version: 
1.20
Release date: 
Friday, 25 October, 2002
Price: 
$40.00, $8.00

License:

Interface:

Authors/Port authors:

Super Virtual Disk (SVDisk) is a 32-bit OS/2 device driver that emulates either a removable Virtual Disk (VDisk) or a removable  Virtual Floppy (VFloppy) drive. By using OS/2's virtual memory  management facility, SVDisk allows the entire contents of the disk to be swapped out via the paging mechanism. If the SVDisk is frequently accessed, OS/2 will keep the most recently used memory pages in RAM, and SVDisk will essentially behave like a RAM Disk. XDF Floppy Disks (eXtended Density Format) are also supported.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. Run INSTALL.CMD. A minimum of 4MB system RAM required. See below for download link(s).

Following ones are the download links for manual installation:

Super Virtual Disk (SVDisk) v. 1.20 (25/10/2002) Readme/What's new
* - VDisk limit increased from 16MB to 128MB and modified all the utilities to handle 128MB VDisk. * - Incorrectly setting DeviceBPB when ejecting an HPFS formatted SVDisk was fixed. * - We also fixed HFORMAT so that it will work with FORMAT.COM from FixPak 37 of Warp 3 and FixPak 7 of Warp 4 and above.
 hobbes.nmsu.edu/download/pub/os2/util/disk/svd120.zip
Super Virtual Disk (SVDisk) v. 1.20 (12/4/2000) Readme/What's new
* - VDisk limit increased from 16MB to 128MB and modified all the utilities to handle 128MB VDisk. * - Incorrectly setting DeviceBPB when ejecting an HPFS formatted SVDisk was fixed. * - We also fixed HFORMAT so that it will work with FORMAT.COM from FixPak 37 of Warp 3 and FixPak 7 of Warp 4 and above.
 ftp2.bmtmicro.com/svd120.zip
Super Virtual Disk (SVDisk) v. 1.18 (18/1/1996) Readme/What's new
Making Hard Copy of the Document ================================ The documentation (SVDISK.DOC) in the package has been typeset with a 57- line page so it will print nicely on most printers. In order to print the documentation, you can type the following on the command line: copy svdisk.doc prn OR type svdisk.doc > prn Transfer of registration information for Licensed versions of SVDisk ==================================================================== Starting with version 1.10, SVDisk includes REREGSVD.EXE for re- registering SVDisk shareware downloads. Once the registration information is transferred, the shareware release will be converted into the full licensed release. For users upgrading from version 1.01, you will need to enter your name when REREGSVD establishs the registration information. You can do this automatically by running INSTALL.CMD and select item 1 from the main menu. To manually re-register SVDisk, run INSTALL.CMD and select item 4 from the main menu or follow the steps below: 1. Make a directory called \TMP. 2. Unpack all the files from the shareware download of SVDisk. 3. Run REREGSVD from an OS/2 command prompt. 4. Enter the path to your registered copy of SVDisk. 5. If you're version 1.01 user, you'll need to enter your name at this point. 6. REREGSVD will proceed to transfer your registration information. Super Virtual Disk Swappable/Lockable/Removable Virtual Disk for OS/2 SVDISK Version 1.18 01/18/96 TABLE OF CONTENTS _________________________________________________________________ 1.0. INTRODUCTION TO Super Virtual Disk ..................3 1.1. What is Super Virtual Disk? ....................3 1.2. Features of SVDisk .............................3 2.0. SYSTEM REQUIREMENTS .................................4 3.0. COPYRIGHT NOTICE ....................................4 4.0. WARRANTY ............................................4 5.0. COST OF Super Virtual Disk ..........................4 6.0. CONTENTS OF THIS PACKAGE ............................5 7.0. INSTALLATION ........................................6 7.1. Quick start ....................................6 7.1.1 Manual installation ......................6 7.1.2 Drive letter arrangement with CD-ROM drive ..........................................7 7.2. SVDisk.sys parameters ..........................7 8.0. CONTROLLING Super Virtual Disk ......................9 8.1. Super Virtual Disk Control help screen .........9 8.2. Options for SVDC ...............................10 8.3. PM Super Virtual Disk Control ..................12 8.4. Using XDF VFloppy for XDF image files ..........12 8.5. Formatting SVDisk as HPFS ......................13 8.4.1 HPFS Diskettes ...........................15 8.4.2 HPFS386 on IBM LAN Server Advanced Edition ........................................17 8.6. Diskette boot bypass using VFloppy .............17 9.0. PROGRAMMING INFORMATION .............................18 10.0. EXAMPLES ...........................................19 10.1. Example 1: Locking non-swappable memory and querying status .....................................19 10.2. Example 2: Ejecting virtual media .............19 10.3. Example 3: Reconfiguring VFloppy device .......20 10.4. Example 4: Inserting virtual media ............20 10.5. Example 5: Multiple operations ................20 11.0. ERROR MESSAGES .....................................21 11.1. List of error messages ........................21 12.0. BACKGROUND INFORMATION .............................21 13.0. ACKNOWLEDGMENTS ....................................21 2 1.0. INTRODUCTION TO Super Virtual Disk _________________________________________________________________ 1.1. What is Super Virtual Disk? Super Virtual Disk (SVDisk) is a 32-bit OS/2 device driver that emulates either a removable Virtual Disk (VDisk) or a removable Virtual Floppy (VFloppy) drive. By using OS/2's virtual memory management facility, SVDisk allows the entire contents of the disk to be swapped out via the paging mechanism. If the SVDisk is frequently accessed, OS/2 will keep the most recently used memory pages in RAM, and SVDisk will essentially behave like a RAM Disk. 1.2. Features of SVDisk - Emulates multiple VDisk devices up to 16MB each even on a 4MB system. Cluster size is maintained at 512 bytes by varying the size of the File Allocation Table (FAT) to reduce file slack. - Emulates multiple VFloppy devices, ranging from 360KB to 2.88MB. Virtual media support ranges from 160KB to 1.2MB for 5.25" VFloppy device, and from 720K to 2.88MB for 3.5" VFloppy device. If the VFloppy is a 3.5" device, automatic media sensing is supported. - eXtended Density Format (XDF) support for OS/2 Warp V3 XDF diskette image files. This includes 1.52MB, 1.84MB and 3.68MB XDF diskettes. Utility is included to transfer XDF image file to and from XDF VFloppy. - Removable media support. This allows SVDisk to release all memory used by the device back to the system. - Dynamic device reconfiguration is supported for the VFloppy device. A VFloppy device can be reconfigured (without rebooting) to any other VFloppy drive or XDF drive. - HPFS formatting program for SVDisk. Mounting and unmounting of HPFS onto SVDisks are supported. HPFS diskette support (diskette imaging program such as Disk eXPress is required.) - Special boot sector on VFloppy device to allow bypassing of floppy boot if the image of the VFloppy is transferred to a real diskette using DISKCOPY. - Formatting and sector/track read/write are supported. - SVDisk allows locking of swappable memory into non-swappable memory. Once memory is locked, SVDisk will behave like a RAM drive without paging delay. The size of the lock can be specified by the user, since locking the entire disk as non- swappable can have serious performance impact to OS/2's virtual memory operation. - A 32-bit command line utility and a 32-bit PM application are included to provide complete control of all the capabilities of SVDisk. 3 2.0. SYSTEM REQUIREMENTS _________________________________________________________________ Machines equipped with an Intel 386SX compatible or higher processor. OS/2 2.1 or higher, with minimum 4MB of memory. 3.0. COPYRIGHT NOTICE _________________________________________________________________ SVDisk (Super Virtual Disk) Version 1.18 01/18/95 (C) Copyright 1994-96 by Albert J. Shan. All Rights Reserved. No part of this program may be disassembled, modified or altered by any means. 4.0. WARRANTY _________________________________________________________________ I, Albert J. Shan, make no warranties, expressed or implied, including, but not limited to, merchantability or fitness for any particular purpose. In no event shall Albert J. Shan be liable for indirect or consequential damages arising from the use of the software program. You are free to redistribute this shareware package in its entirety. No part of this package may be included as part of a commercial package. If you have any questions about commercial distribution of Super Virtual Disk, I can be contacted via: CompuServe, ID 70730,401 or Internet, 70730.401@compuserve.com 5.0. COST OF Super Virtual Disk _________________________________________________________________ The user is granted a 30 days trial period, after which he or she is required to register or discontinue the use of the product. The cost of a single machine license is $30 U.S. Please refer to the file ORDER.FRM for details. 4 6.0. CONTENTS OF THIS PACKAGE _________________________________________________________________ The following files are included in this package: INSTALL.CMD - Installation command file SVDISK.SYS - Super Virtual Disk device driver SVDC.EXE - Super Virtual Disk Control PMSVDC.EXE - PM version of SVDC HFORMAT.EXE - SVDisk HPFS formatting utility HMOUNT.EXE - HPFS mounting/unmounting utility for SVDisk REREGSVD.EXE - SVDisk re-registration program XDFSVD.EXE - XDF Copier for SVDisk KWIKTOOL.MSG - English error message file, common to all EXE files. SVDISK.MSG - English message file for SVDISK.SYS and SVDC.EXE PMSVDC.MSG - English message file for PMSVDC.EXE HFORMAT.MSG - English message file for HFORMAT.EXE HMOUNT.MSG - English message file for HMOUNT.EXE XDFSVD.MSG - English message file for XDFSVD.EXE KWIKTOOL.GER - German error message file, common to all EXE files. SVDISK.GER - German message file for SVDISK.SYS and SVDC.EXE PMSVDC.GER - German message file for PMSVDC.EXE HFORMAT.GER - German message file for HFORMAT.EXE HMOUNT.GER - German message file for HMOUNT.EXE XDFSVD.GER - German message file for XDFSVD.EXE SVDISK.DOC - This documentation SVDISK.HST - History of SVDisk LICENSE.DOC - License agreement for registered users WARRANTY.DOC - Warranty information for registered users ORDER.FRM - Order form README - Last minute information 5 7.0. INSTALLATION _________________________________________________________________ 7.1. Quick start For automatic installation, please run INSTALL.CMD from an OS/2 command prompt. 7.1.1 Manual installation To manually install SVDisk, make a subdirectory called SVDISK, and copy all the SVDisk files into \SVDISK. Then edit your OS/2 CONFIG.SYS to include a line: DEVICE=D:\SVDISK\SVDISK.SYS Where D: is the drive where you created the SVDISK subdirectory. Add SVDISK to the path and dpath by appending D:\SVDISK at the end of the PATH= and DPATH= statement in CONFIG.SYS. English language message files are used by default. To use the German language message files, rename all *.MSG files to *.ENG, and rename all *.GER files to *.MSG. When you load SVDisk without any parameter as in the above example, it will create a 1.44MB VFloppy device after you reboot the system. When SVDisk is loaded, it does not put a media in the virtual drive. You have to manually insert it with SVDC or PMSVDC. To insert a virtual media after the system is booted, you type: SVDC X: /i:720 Where X: is the drive letter of the SVDisk after boot. This will insert a 720KB virtual media into the drive. If you specify /i without any parameter, SVDC will insert a media with the maximum capacity as defined by the SVDisk.sys device in CONFIG.SYS. To make media insertion automatic, simply edit STARTUP.CMD on your OS/2 boot drive and add the SVDC line to it. Alternatively, you can insert the virtual media by using the CALL= statement in CONFIG.SYS: CALL=D:\SVDISK\SVDC.EXE X: /i:720 If you want to install a 8MB VDisk type device, edit your CONFIG.SYS by adding a line: DEVICE=D:\SVDISK\SVDISK 8192 512 6 This will create a 8MB VDisk device with 512 root directory entries after you reboot the system. 7.1.2 Drive letter arrangement with CD-ROM drive Starting with OS/2 2.1, a DASD (Direct Access Storage Device) Manager Driver (DMD) can be loaded as a device driver. This is the case for the CD-ROM device driver (OS2CDROM.DMD.) This arrangement allows another disk device driver to be positioned before or after the CD-ROM drive. To load a SVDisk with drive letter preceeding the CD-ROM drive, locate the DEVICE= statement containing OS2CDROM.DMD, and insert the SVDISK.SYS DEVICE= statement before it. To load a SVDisk after the CD-ROM, add the SVDISK.SYS DEVICE= statement after OS2CDROM.DMD. 7.2. SVDisk.sys parameters SVDisk.sys can be loaded with no parameter to up to two parameters. To load SVDisk as a VFloppy device, you must specify the size of the VFloppy device in KB. For example: REM *** Load a 1.44MB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 1440 REM *** Load a 2.88MB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 2880 REM *** Load a 360KB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 360 REM *** Load a 1.84MB XDF VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 1840 The possible values for VFloppy device are: 360, 720, 1200, 1440, and 2880. Use 1520, 1840 and 3680 for XDF VFloppy. Since SVDisk defaults to a 1.44MB VFloppy device, the 1440 parameter can be omitted. To load SVDisk as a VDisk device, you can specify up to two parameters: DEVICE=\SVDISK\SVDISK.SYS ssss eeee Where ssss is the size of the VDisk device, and eeee is the root directory entries for the device. eeee is optional, and if you do not specify it, SVDisk will default to 64 root directory entries. The possible values for ssss are from 16 to 16384 (16KB to 16MB.) The VDisk device will always round up the size into 16KB 7 boundary. If you specify a 250KB VDisk device, it will be loaded as 256KB. The possible values for eeee are from 16 to 1024. This value is also rounded up in multiple of 16. If you load a VDisk device near the size of 4MB, it will attempt to resolve the File Allocation Table (FAT) size as either 12-bit or 16-bit. In the case of conflict due to a large root directory entries specification, SVDisk will slightly reduce the VDisk size in favor of a 12-bit FAT for lower disk sector overhead in the system area on the virtual media. SVDisk distinguishes a VDisk device from a VFloppy device solely by the ssss (size) parameter. If ssss is one of the possible values for a VFloppy device, it will load itself as a VFloppy device, and the second parameter is ignored. 8 8.0. CONTROLLING Super Virtual Disk _________________________________________________________________ Two programs are provided to control the SVDisks: SVDC.EXE and PMSVDC.EXE. PMSVDC.EXE is the Presentation Manager version of SVDC.EXE. 8.1. Super Virtual Disk Control help screen Type SVDC at the OS/2 command prompt to receive this help screen: Super Virtual Disk Control (32-bit) Version 1.18 SHAREWARE VERSION (C) Copyright 1994-96 Albert J. Shan. All Rights Reserved. For use with Super Virtual Disk driver (SVDISK.SYS) Usage: SVDC [options] Drive: [options] /c Fake a disk change. /e[f] Eject media [f = forced eject]. /i[:size] Insert media (if size is not specified, default to max. drive capacity.) Size can only be specified for the VFloppy device. Valid sizes are: 160, 180, 320, 360, 1.2, 720, 1.44, 2.88, 1.52, 1.84, 3.68. /l:size Lock SVDisk in non-swappable memory. Size is anywhere from 0 (KB) to the max. media size. /q Query SVDisk status /r[:size] Reconfigure VFloppy device capacity (if size is not specified, default to max. drive capacity.) Valid sizes are: 360, 1.2, 720, 1.44, 2.88, 1.52, 1.84, 3.68. /u Unlock non-swappable memory used by the SVDisk. Drive: Drive letter of the Super Virtual Disk. NOTE: The drive must not contain any media before reconfiguring with /r. *** Note: parameters within [] are optional. If you specify the drive letter of a SVDisk and without specifying any other options, SVDC will report the current status of the SVDisk drive as if the Query Status switch (/q) is specified. For example: [C:\SVDISK]svdc j: SVDISK.SYS Version: 1.18 Default device size: 2.88MB Current device size: 2.88MB Current media size: 1.44MB Non-swappable memory locked: 128KB 9 8.2. Options for SVDC /c Fake a disk change. This command will cause the SVDisk specified to appear as if it has been changed (ejected then reinserted.) This is accomplished by changing the Volume Serial on the SVDisk. If the program in question is looking for a change in Volume Label or a DOS program is looking for a change line bit in hardware, /c will not work. /e[f] Eject media. This will eject the media in the SVDisk, thereby releasing all memory, including locked memory (see /l and /u below) back to the system. If a program is currently running off the SVDisk, you must specify /ef to force the disk to eject. Further access to the SVDisk drive will cause a drive not ready error. /i[:size] Insert media. If size is not specified, it will insert a media with exactly the same size as the SVDisk device. For example, if the VFloppy is 2.88MB, specifying /i alone will insert a 2.88MB media into the SVDisk drive. The optional size parameter is only applicable for a VFloppy device. This allows different size media to be inserted into the VFloppy drive. If the VFloppy is a 5.25" 360KB device, the possible values are: 160, 180, 320, and 360. If the VFloppy is a 3.5" 1.44MB device, the possible values are: 720 and 1.44. Depending on the type of VFloppy device, the possible values are: 160, 180, 320, 360, 1.2, 720, 1.44 and 2.88. For XDF media, the possible values are: 1.52, 1.84, and 3.68. When the VFloppy device is an XDF device, only XDF media are supported. /l:size Lock virtual disk in non-swappable memory. This will cause the virtual memory allocated by SVDisk to be locked in real memory pages, and they will be precluded from swapping out by the system. The starting location of the lock is fixed at the beginning of the disk, at logical sector 0. The size parameter is anywhere from 0 to the maximum size of the media in the SVDisk. It will be rounded up in 4KB in size as OS/2 can only lock memory in 4KB page boundary. A size of 0 is equivalent to unlocking all the memory (see /u switch below.) If a lock already exists on the SVDisk, it will be released, and the new lock size will be installed. If there is not enough real memory for the lock, /l will fail, and at the same time, releasing any memory previously locked. The OS/2 kernel will swap out other processes in order to make room for the lock. This may take a while as pages are being swapped out. The system will not be 10 responsive when the kernel is into heavy paging activities. WARNING: Locking memory as non-swappable has the same effect as removing system memory on the hardware level. If you have an 8MB system, locking a few mega bytes of memory will make your system appear as if it has 4MB total system memory or less. If the lock succeeds in locking large amount of memory, and the remaining non- swappable memory is extremely low, the OS/2 virtual memory paging mechanism will thrash. Although the system is not crashed, it will be paging in and out so frequently that the system can no longer respond to the user's input. You will need to press Ctrl-Alt-Del to recover in this case. In general, it is recommended not to lock more that one quarter of total system memory as non-swappable for all SVDisk devices combined. PMSVDC.EXE will limit the maximum of the lock to half of total system memory or the maximum disk size, whichever is less. On the other hand, SVDC.EXE is designed to be flexible, so any lock size is possible. /q Query SVDisk Status. The following is a typical SVDisk report: SVDISK.SYS Version: 1.18 Default device size: 2.88MB Current device size: 2.88MB Current media size: 1.44MB Non-swappable memory locked: 128KB /r[:size] Reconfigure VFloppy device capacity. This switch is only applicable to the VFloppy device. It allows dynamic device reconfiguration while the system is running. Before you can reconfigure the VFloppy device, the media must be ejected first via the /e switch. Specifying /r alone will reconfigure the VFloppy device to the initial capacity as loaded by the device driver. The VFloppy device can be reconfigured to any other valid type of VFloppy device. For XDF device, the possible values are: 1.52, 1.84, and 3.68. /u Unlock non-swappable memory used by the SVDisk. This is the same as specifying /l:0. Locked memory is released as being swappable. 11 8.3. PM Super Virtual Disk Control The Presentation Manager version of Super Virtual Disk Control (PMSVDC.EXE) provides identical functions as SVDC.EXE with one exception. The lock function will limit the maximum available memory for the lock as half of total system memory or maximum media size, whichever is less. This means if you have 16MB of memory, and your VDisk device is 16MB, the largest memory size you can lock is 8MB. Many system boards reserve up to 384K of memory for shadow ROM and other purposes. This effectively reduces your total system memory. Instead of 16MB (16384KB), you get 16000KB total system memory under OS/2 and the maximum size for the lock in this case is 8000KB. The lock function also warns you if you are locking more than one quarter of the total system memory. If you have multiple SVDisk devices, PMSVDC will add up all memory locked by all SVDisk devices, subtract the existing lock size on the current device, then add the new requested size to see if it exceeds one quarter total system memory limit. In general, the total memory locked by all SVDisk devices should be less than one quarter of the total system memory to prevent OS/2 pager from thrashing. 8.4. Using XDF VFloppy for XDF image files In order to use an XDF (eXtended Density Format) image file on a VFloppy device, the VFloppy device must be reconfigured to one of the XDF type VFloppies. The available capacities for XDF diskettes are as follows: 5.25" 1.2MB media: 1520KB XDF (1.52MB) 3.5" 1.44MB media: 1840KB XDF (1.84MB) 3.5" 2.88MB media: 3680KB XDF (3.68MB) For example, if your VFloppy has drive letter J:, you can reconfigure it to 1.84MB XDF VFloppy as follows: SVDC J: /e SVDC J: /r:1.84 /i The included program, XDFSVD.EXE (XDF Copier for SVDisk) is designed for transferring XDF diskette images to and from an XDF VFloppy. XDFCOPY.EXE included in OS/2 Warp Version 3 is designed to transfer XDF images to and from a real diskette drive (A: or B:.) XDFCOPY.EXE cannot be used on an XDF VFloppy. And likewise, XDFSVD.EXE cannot be used on a real diskette drive. To transfer an XDF Image file to an XDF VFloppy: XDFSVD DISK5.DSK J: 12 To transfer an XDF VFloppy to an XDF Image file: XDFSVD J: DISK5.DSK Here is a typical screen when you run XDFSVD: XDF Image file -> XDF SVDisk Press Enter to continue, Ctrl-C to stop... 75% written to SVDisk J: The "Press Enter to contiune..." prompt can be bypassed by specifying the /s switch (type XDFSVD by itself to see the help screen.) NOTE: When a VFloppy is used in XDF mode, it does not try to emulate the actual mechanism used by a real XDF diskette. It does not have the special boot sector and file system information of a real XDF diskette. The following scenario is not a valid way to create a real XDF diskette: - Reconfigure a VFloppy to an XDF VFloppy - Create files on the XDF VFloppy - Use XDFSVD to create an XDF image file - Use XDFCOPY to transfer the XDF image file to a real diskette The proper way for editing the contents of an XDF diskette via XDF VFloppy is as follows: - Reconfigure a VFloppy to an XDF VFloppy - Use XDFCOPY to create an XDF image file from a real XDF diskette - Use XDFSVD to transfer the XDF image file to the XDF VFloppy - Edit the contents of the XDF VFloppy - Use XDFSVD to create the new XDF image file - Use XDFCOPY to create the new XDF diskette 8.5. Formatting SVDisk as HPFS NOTE: Using the High-Performance File System (HPFS) on SVDisk requires special considerations and understanding of OS/2 and the HPFS file system. THE ONLY SUPPORTED HPFS.IFS DRIVERS ARE THE ONES IN OS/2 2.1 AND OS/2 WARP VERSION 3. HPFS.IFS in OS/2 2.11 (ServicePak XR06200) is not supported due to a severe bug in the HPFS driver. If you are using OS/2 2.11, you must copy the HPFS.IFS driver from the original OS/2 2.1 installation diskettes (diskette 1). FAILURE TO USE THE CORRECT HPFS DRIVER WILL CAUSE SYSTEM CRASH WHEN DATA IS COPIED TO A HPFS SVDISK. 13 Two utilities are included for handling HPFS on SVDisk: HFORMAT.EXE and HMOUNT.EXE. HFORMAT formats any SVDisk into HPFS file system format. It does it by temporary reconfiguring SVDisk to appear as a non-removable disk, and then calls the OS/2 FORMAT.COM program to perform the HPFS formatting. HFORMAT will verify the drive to make sure it is a SVDisk before proceeding with FORMAT.COM. Once a SVDisk is formatted as HPFS, HFORMAT will reconfigure SVDisk back to a removable disk device. HFORMAT requires the SVDisk media to be at least 1MB in size. Since HPFS requires approximately 200KB for the file system structures, it is not pratical to have HPFS on a low capacity media. Before you can format a SVDisk as HPFS, the HPFS.IFS driver must be installed. If you are not using HPFS, you can install the HPFS driver using Selective Install in the System Setup folder. HPFS is usually installed as the first line in CONFIG.SYS. A typical HPFS.IFS line in CONFIG.SYS looks like the following: IFS=C:\OS2\HPFS.IFS /CACHE:128 /CRECL:4 /AUTOCHECK:C This specifies the HPFS Installable File System (IFS) with 128KB cache; a caching threshold of 4KB, and automatic CHKDSK of C: drive upon boot. For performance reason, HPFS is not recommended for system with 4MB of system memory. Once HPFS is installed, you can format a SVDisk into HPFS. To do so, type: HFORMAT D: where D: is the drive letter of the SVDisk drive. You can specify a volume label with HFORMAT: HFORMAT D: /v:SUPERDISK This will format the SVDisk D: as HPFS and assign SUPERDISK as the volume label. If you want to format a HPFS SVDisk back to FAT, the easiest way is to eject the media (/e), and insert (/i) a new one. If you wish to use FORMAT.COM to do the formatting, you must first unmount HPFS from the SVDisk. Since HPFS is not designed for removable media, special media handling is necessary to prevent HPFS from crashing. HPFS is mounted to the OS/2 File System whenever OS/2 detects a HPFS drive during boot or after a successful HPFS disk format with FORMAT.COM. However, OS/2 does not provide a way for unmounting a HPFS drive. If you eject a HPFS media from a removable drive, the HPFS driver will crash when it attempts to flush the disk cache later, or when you shutdown the operating system. Since 14 the majority of the diskette drives have a mechanical eject button; the media can be ejected without the control of the file system driver. This is the primary reason why HPFS is not supported for the diskette drive. SVDC.EXE and PMSVDC.EXE have built-in HPFS unmounting capability. When you eject a HPFS SVDisk, it will unmount the HPFS file system before the disk is ejected, thereby preventing HPFS from crashing. If your HPFS SVDisk drive is in use by another process (such as open files, or a process running off the HPFS SVDisk), SVDC and PMSVDC eject function will disallow the removal of the media. This is done to prevent HPFS from crashing since there is no way to flush or unmount HPFS if a process is running off of that disk. If you wish to manually unmount HPFS off a SVDisk, you can do so with HMOUNT.EXE. HMOUNT has two modes of operation: mounting and unmounting HPFS. To unmount a HPFS SVDisk, do the following: HMOUNT D: /u Where D: is the drive letter of the HPFS SVDisk drive. Once HPFS is unmounted from the SVDisk, you can no longer access the drive's contents. At this point, OS/2 believes the current file system on the SVDisk drive is FAT, and will not display the contents of the drive correctly. You can mount the drive back with HMOUNT by typing: HMOUNT D: You can force HPFS to flush the cache by unmounting and then remounting the disk. NOTE: It is the user's responsibility to make sure nothing is written to an unmounted HPFS media before it is mounted as HPFS again. HPFS may crash if the file system structures are severely damaged. Since HPFS provides superlative caching performace, the use of non-swappable memory locking (/l in SVDC) is unnecessary and should be avoided to conserve system memory. 8.4.1 HPFS Diskettes Since a VFloppy can be formatted as HPFS, you can transfer, for example, a 1.44MB HPFS VFloppy onto a real diskette. The supported HPFS diskette sizes are: 1.2MB, 1.44MB, and 2.88MB. HFORMAT cannot format a real diskette as HPFS because the IBM1FLPY.ADD/IBM2FLPY.ADD driver prevents the change of one 15 critical diskette parameter which is needed by HFORMAT.EXE and OS/2's FORMAT.COM. DISKCOPY cannot be used to transfer HPFS VFloppy to a real diskette because it expects both the source and target file systems to be FAT. You will need to use a Diskette Imaging program such as Disk eXPress (DXP.) Disk eXPress Version 2.33 or later is required. Shareware version of Disk eXPress can be found on most major OS/2 BBSes. To image a HPFS VFloppy, you will need to save the entire contents of the disk. With Disk eXPress, you can do this by: DXP32 D: HPFS1440 /a Where D: is the 1.44MB HPFS SVDisk drive (VFloppy device), and HPFS1440 is the self-extracting diskette image file. The /a switch (read the entire diskette) is not really required, as Disk eXPress detects the HPFS VFloppy as a non-DOS media, and will automatically read the entire diskette. Once the diskette image is created, you can restore it onto a real diskette. You can do this by typing: HPFS1440 A: (if the diskette is formatted) OR DXP32 HPFS1440.EXE A: /f (if the diskette is unformatted) In order to use a HPFS diskette, you must first mount the media for use. This is accomplished with HMOUNT. HMOUNT A: Normally, OS/2 will mount a HPFS disk if it detects it to be HPFS when you first access it. This means if a HPFS diskette is inserted into the drive and accessed without HMOUNT, OS/2 will recognize it, and access the contents correctly. However, this is only true when you are dealing with 1.2MB and 1.44MB drives. With the 2.88MB drives, it is imperative that you use HMOUNT to mount a 1.44MB HPFS diskette. HMOUNT will temporary reconfigure your floppy hardware to appear as a 1.44MB diskette drive. This is necessary to allow HPFS to function correctly for the 1.44MB media in the 2.88MB diskette drive. When you unmount a 1.44MB HPFS diskette from a 2.88MB drive, the drive parameter is not restored, and OS/2 believes you still have a 1.44MB diskette drive. In order to restore diskette hardware parameters to 2.88MB, a 2.88MB HPFS diskette must be prepared in advance using a 2.88MB HPFS SVDisk. To restore the 2.88MB hardware status, you must mount then unmount a 2.88MB HPFS diskette. To do so, insert the 2.88MB HPFS diskette, perform a HMOUNT to mount the diskette and then perform a HMOUNT /u to unmount HPFS from the drive. 16 CAUTION: Make sure a HPFS diskette is unmounted with HMOUNT /u before ejecting it from the diskette drive. Failure to do so will cause HPFS to crash when it attempts to flush the cache or during a system shutdown. If you accidentially ejected a HPFS diskette, you must reinsert it into the drive immediately, and execute HMOUNT /u to unmount HPFS. Failure to do so before HPFS has a chance to update the media will lead to system crash. 8.4.2 HPFS386 on IBM LAN Server Advanced Edition SVDisk does not support HPFS386 on IBM LAN Server Advanced Edition. This particular version of HPFS requires Scatter/Gather support in the device driver level. SVDisk currently does not support Scatter/Gather. Formatting SVDisk as HPFS under HPFS386 will lead to system crash. 8.6. Diskette boot bypass using VFloppy SVDisk contains a special boot sector under FAT which can be used to bypass a real floppy boot. You can do this by transferring the image of a VFloppy device with DISKCOPY to a real diskette. If you leave the diskette in drive A:, upon system reboot, you will get the following message on the screen: Transferring system boot from diskette to hard drive... And the boot sequence will be transferred to the hard drive. If you have OS/2 Boot Manager installed, you will see the Boot Manager at this point. 17 9.0. PROGRAMMING INFORMATION _________________________________________________________________ When SVDisk is used as a VFloppy device, it tries to emulate a real floppy drive as much as possible. However, this emulation is not 100%. If you write a program against the behavior of a real floppy drive, it will almost certainly work with SVDisk. The converse is not always true. This is because SVDisk makes certain assumptions to simplify many of the internal operations which are true for a virtual device. The common pitfall is to assume reading and writing to a floppy device are always slower than other computational threads. If a multithreaded OS/2 application is designed with the above assumption, it will almost certainly fail because the disk read/write operations are much faster than the program has expected. SVDisk supports the following IOCtl Category 8 logical disk commands (in hex): 00 Lock drive 01 Unlock drive 02 Redetermine media 04 Begin format 20 Block removable 21 Query logical map 43 Set device parameters (the changing the BPB of the device is not supported) 44 Read track 64 Write track 65 Verify track 45 Format and verify track 60 Query media sense 63 Query device parameters Please refer to OS/2 2.x SDK (Software Development Kit) on programming the IOCtl interface. 18 10.0. EXAMPLES _________________________________________________________________ The following examples assume you have the following lines installed in CONFIG.SYS: DEVICE=D:\SVDISK\SVDISK.SYS 8192 512 DEVICE=D:\SVDISK\SVDISK.SYS 2880 CALL=D:\SVDISK\SVDC.EXE H: /i CALL=D:\SVDISK\SVDC.EXE I: /i:1.44 The first SVDisk is an 8MB VDisk device with 512 root directory entries, with drive letter 'H' assigned to it by OS/2. The second SVDisk is a 2.88MB VFloppy device, initially loaded with a 1.44MB virtual media, and is assigned as drive 'I'. 10.1. Example 1: Locking non-swappable memory and querying status You would like to lock the first 600K of SVDisk H: in non- swappable memory, and query the status at the same time: SVDC H: /l:600 /q And you get the following report: SVDISK.SYS Version: 1.18 Default device size: 8192KB Current device size: 8192KB Current media size: 8192KB Non-swappable memory locked: 600KB 10.2. Example 2: Ejecting virtual media You can eject the virtual media in SVDisk so that all memory used (including locked memory) is returned to the operating system: SVDC I: /e If the SVDisk is in used by a process (ie: a running program, open files, etc.), you'll receive an error message: KWT0131: Drive I: is not ready or in use by another process. You can force eject the virtual media by specifying /ef: SVDC I: /ef 19 10.3. Example 3: Reconfiguring VFloppy device You want to change the VFloppy drive I: into a 1.2MB 5.25" device: SVDC I: /r:1.2 10.4. Example 4: Inserting virtual media You want to insert a 360KB virtual media into drive I:, which has just been reconfigured to a 1.2MB VFloppy drive: SVDC I: /i:360 10.5. Example 5: Multiple operations You can combine example 3 and 4 plus locking and querying all in one step: SVDC I: /r:1.2 /i:360 /l:180 /q And you'll receive this status report: SVDISK.SYS Version: 1.18 Default device size: 2.88MB Current device size: 1.2MB Current media size: 360KB Non-swappable memory locked: 180KB 20 11.0. ERROR MESSAGES _________________________________________________________________ 11.1. List of error messages The following is a list of major error messages returned by SVDC.EXE. The error return code is also displayed as part of the prefix in the error message: SVDnnnn: Error message text Where nnnn is the error return code. SVD0016: Drive X: is not a Super Virtual Disk. SVD0017: SVDISK.SYS has a higher revision level. SVD0018: Invalid media size. SVD0019: Cannot eject because the file system on drive is HPFS and is currently in use by another process. SVD0020: Unable to eject Super Virtual Disk due to memory deallocation error. SVD0021: Unable to insert Super Virtual Disk due to memory allocation error. SVD0022: No media in drive. SVD0023: You cannot insert two media in the drive. SVD0024: Incorrect size specified. SVD0025: System failed to lock memory as non-swappable. SVD0026: System failed to unlock non-swappable memory. SVD0027: No non-swappable memory locked by the Super Virtual Disk. SVD0028: Cannot reconfigure Super Virtual Disk with a media in the Drive. SVD0029: Only VFloppy type device can be reconfigured. 12.0. BACKGROUND INFORMATION _________________________________________________________________ The Super Virtual Disk device driver is written in 386 assembly language. The source files consist of over 2500 lines of assembly code, and over 3600 lines of C code. 32-bit instructions are used extensively in the device driver, with critical memory transfer loop in double word (32-bit) alignment. All the utilities programs are 32-bit executables. The device driver interface is 16-bit, as limited by the OS/2 kernel. Media is made removable to allow unrestricted virtual memory allocation. It is not possible to allocate 16MB virtual memory during device driver initialization. 13.0. ACKNOWLEDGMENTS _________________________________________________________________ German message files translation was performed by Peter Freitag. 21
 www.os2site.com/sw/drivers/filesystem/old/svd118.zip
Super Virtual Disk (SVDisk) v. 1.17 (28/5/1995) Readme/What's new
Making Hard Copy of the Document ================================ The documentation (SVDISK.DOC) in the package has been typeset with a 57- line page so it will print nicely on most printers. In order to print the documentation, you can type the following on the command line: copy svdisk.doc prn OR type svdisk.doc > prn Transfer of registration information for Licensed versions of SVDisk ==================================================================== Starting with version 1.10, SVDisk includes REREGSVD.EXE for re- registering SVDisk shareware downloads. Once the registration information is transferred, the shareware release will be converted into the full licensed release. For users upgrading from version 1.01, you will need to enter your name when REREGSVD establishs the registration information. You can do this automatically by running INSTALL.CMD and select item 1 from the main menu. To manually re-register SVDisk, run INSTALL.CMD and select item 4 from the main menu or follow the steps below: 1. Make a directory called \TMP. 2. Unpack all the files from the shareware download of SVDisk. 3. Run REREGSVD from an OS/2 command prompt. 4. Enter the path to your registered copy of SVDisk. 5. If you're version 1.01 user, you'll need to enter your name at this point. 6. REREGSVD will proceed to transfer your registration information. Super Virtual Disk Swappable/Lockable/Removable Virtual Disk for OS/2 SVDISK Version 1.17 05/28/95 TABLE OF CONTENTS _________________________________________________________________ 1.0. INTRODUCTION TO Super Virtual Disk ..................3 1.1. What is Super Virtual Disk? ....................3 1.2. Features of SVDisk .............................3 2.0. SYSTEM REQUIREMENTS .................................4 3.0. COPYRIGHT NOTICE ....................................4 4.0. WARRANTY ............................................4 5.0. COST OF Super Virtual Disk ..........................4 6.0. CONTENTS OF THIS PACKAGE ............................5 7.0. INSTALLATION ........................................6 7.1. Quick start ....................................6 7.1.1 Manual installation ......................6 7.1.2 Drive letter arrangement with CD-ROM drive ..........................................7 7.2. SVDisk.sys parameters ..........................7 8.0. CONTROLLING Super Virtual Disk ......................9 8.1. Super Virtual Disk Control help screen .........9 8.2. Options for SVDC ...............................10 8.3. PM Super Virtual Disk Control ..................12 8.4. Using XDF VFloppy for XDF image files ..........12 8.5. Formatting SVDisk as HPFS ......................13 8.4.1 HPFS Diskettes ...........................15 8.4.2 HPFS386 on IBM LAN Server Advanced Edition ........................................17 8.6. Diskette boot bypass using VFloppy .............17 9.0. PROGRAMMING INFORMATION .............................18 10.0. EXAMPLES ...........................................19 10.1. Example 1: Locking non-swappable memory and querying status .....................................19 10.2. Example 2: Ejecting virtual media .............19 10.3. Example 3: Reconfiguring VFloppy device .......20 10.4. Example 4: Inserting virtual media ............20 10.5. Example 5: Multiple operations ................20 11.0. ERROR MESSAGES .....................................21 11.1. List of error messages ........................21 12.0. BACKGROUND INFORMATION .............................21 13.0. ACKNOWLEDGMENTS ....................................21 2 1.0. INTRODUCTION TO Super Virtual Disk _________________________________________________________________ 1.1. What is Super Virtual Disk? Super Virtual Disk (SVDisk) is a 32-bit OS/2 device driver that emulates either a removable Virtual Disk (VDisk) or a removable Virtual Floppy (VFloppy) drive. By using OS/2's virtual memory management facility, SVDisk allows the entire contents of the disk to be swapped out via the paging mechanism. If the SVDisk is frequently accessed, OS/2 will keep the most recently used memory pages in RAM, and SVDisk will essentially behave like a RAM Disk. 1.2. Features of SVDisk - Emulates multiple VDisk devices up to 16MB each even on a 4MB system. Cluster size is maintained at 512 bytes by varying the size of the File Allocation Table (FAT) to reduce file slack. - Emulates multiple VFloppy devices, ranging from 360KB to 2.88MB. Virtual media support ranges from 160KB to 1.2MB for 5.25" VFloppy device, and from 720K to 2.88MB for 3.5" VFloppy device. If the VFloppy is a 3.5" device, automatic media sensing is supported. - eXtended Density Format (XDF) support for OS/2 Warp V3 XDF diskette image files. This includes 1.52MB, 1.84MB and 3.68MB XDF diskettes. Utility is included to transfer XDF image file to and from XDF VFloppy. - Removable media support. This allows SVDisk to release all memory used by the device back to the system. - Dynamic device reconfiguration is supported for the VFloppy device. A VFloppy device can be reconfigured (without rebooting) to any other VFloppy drive or XDF drive. - HPFS formatting program for SVDisk. Mounting and unmounting of HPFS onto SVDisks are supported. HPFS diskette support (diskette imaging program such as Disk eXPress is required.) - Special boot sector on VFloppy device to allow bypassing of floppy boot if the image of the VFloppy is transferred to a real diskette using DISKCOPY. - Formatting and sector/track read/write are supported. - SVDisk allows locking of swappable memory into non-swappable memory. Once memory is locked, SVDisk will behave like a RAM drive without paging delay. The size of the lock can be specified by the user, since locking the entire disk as non- swappable can have serious performance impact to OS/2's virtual memory operation. - A 32-bit command line utility and a 32-bit PM application are included to provide complete control of all the capabilities of SVDisk. 3 2.0. SYSTEM REQUIREMENTS _________________________________________________________________ Machines equipped with an Intel 386SX compatible or higher processor. OS/2 2.1 or higher, with minimum 4MB of memory. 3.0. COPYRIGHT NOTICE _________________________________________________________________ SVDisk (Super Virtual Disk) Version 1.17 05/28/95 (C) Copyright 1994-95 by Albert J. Shan. All Rights Reserved. No part of this program may be disassembled, modified or altered by any means. 4.0. WARRANTY _________________________________________________________________ I, Albert J. Shan, make no warranties, expressed or implied, including, but not limited to, merchantability or fitness for any particular purpose. In no event shall Albert J. Shan be liable for indirect or consequential damages arising from the use of the software program. You are free to redistribute this shareware package in its entirety. No part of this package may be included as part of a commercial package. If you have any questions about commercial distribution of Super Virtual Disk, I can be contacted at: Albert J. Shan 4620 Granville Avenue Richmond, B.C. CANADA V7C 1E4 or via CompuServe, ID 70730,401 or via Internet, 70730.401@compuserve.com 5.0. COST OF Super Virtual Disk _________________________________________________________________ The user is granted a 30 days trial period, after which he or she is required to register or discontinue the use of the product. The cost of a single machine license is $30 U.S. Please refer to the file ORDER.FRM for details. 4 6.0. CONTENTS OF THIS PACKAGE _________________________________________________________________ The following files are included in this package: INSTALL.CMD - Installation command file SVDISK.SYS - Super Virtual Disk device driver SVDC.EXE - Super Virtual Disk Control PMSVDC.EXE - PM version of SVDC HFORMAT.EXE - SVDisk HPFS formatting utility HMOUNT.EXE - HPFS mounting/unmounting utility for SVDisk REREGSVD.EXE - SVDisk re-registration program XDFSVD.EXE - XDF Copier for SVDisk KWIKTOOL.MSG - English error message file, common to all EXE files. SVDISK.MSG - English message file for SVDISK.SYS and SVDC.EXE PMSVDC.MSG - English message file for PMSVDC.EXE HFORMAT.MSG - English message file for HFORMAT.EXE HMOUNT.MSG - English message file for HMOUNT.EXE XDFSVD.MSG - English message file for XDFSVD.EXE KWIKTOOL.GER - German error message file, common to all EXE files. SVDISK.GER - German message file for SVDISK.SYS and SVDC.EXE PMSVDC.GER - German message file for PMSVDC.EXE HFORMAT.GER - German message file for HFORMAT.EXE HMOUNT.GER - German message file for HMOUNT.EXE XDFSVD.GER - German message file for XDFSVD.EXE SVDISK.DOC - This documentation SVDISK.HST - History of SVDisk LICENSE.DOC - License agreement for registered users WARRANTY.DOC - Warranty information for registered users ORDER.FRM - Order form README - Last minute information 5 7.0. INSTALLATION _________________________________________________________________ 7.1. Quick start For automatic installation, please run INSTALL.CMD from an OS/2 command prompt. 7.1.1 Manual installation To manually install SVDisk, make a subdirectory called SVDISK, and copy all the SVDisk files into \SVDISK. Then edit your OS/2 CONFIG.SYS to include a line: DEVICE=D:\SVDISK\SVDISK.SYS Where D: is the drive where you created the SVDISK subdirectory. Add SVDISK to the path and dpath by appending D:\SVDISK at the end of the PATH= and DPATH= statement in CONFIG.SYS. English language message files are used by default. To use the German language message files, rename all *.MSG files to *.ENG, and rename all *.GER files to *.MSG. When you load SVDisk without any parameter as in the above example, it will create a 1.44MB VFloppy device after you reboot the system. When SVDisk is loaded, it does not put a media in the virtual drive. You have to manually insert it with SVDC or PMSVDC. To insert a virtual media after the system is booted, you type: SVDC X: /i:720 Where X: is the drive letter of the SVDisk after boot. This will insert a 720KB virtual media into the drive. If you specify /i without any parameter, SVDC will insert a media with the maximum capacity as defined by the SVDisk.sys device in CONFIG.SYS. To make media insertion automatic, simply edit STARTUP.CMD on your OS/2 boot drive and add the SVDC line to it. Alternatively, you can insert the virtual media by using the CALL= statement in CONFIG.SYS: CALL=D:\SVDISK\SVDC.EXE X: /i:720 If you want to install a 8MB VDisk type device, edit your CONFIG.SYS by adding a line: DEVICE=D:\SVDISK\SVDISK 8192 512 6 This will create a 8MB VDisk device with 512 root directory entries after you reboot the system. 7.1.2 Drive letter arrangement with CD-ROM drive Starting with OS/2 2.1, a DASD (Direct Access Storage Device) Manager Driver (DMD) can be loaded as a device driver. This is the case for the CD-ROM device driver (OS2CDROM.DMD.) This arrangement allows another disk device driver to be positioned before or after the CD-ROM drive. To load a SVDisk with drive letter preceeding the CD-ROM drive, locate the DEVICE= statement containing OS2CDROM.DMD, and insert the SVDISK.SYS DEVICE= statement before it. To load a SVDisk after the CD-ROM, add the SVDISK.SYS DEVICE= statement after OS2CDROM.DMD. 7.2. SVDisk.sys parameters SVDisk.sys can be loaded with no parameter to up to two parameters. To load SVDisk as a VFloppy device, you must specify the size of the VFloppy device in KB. For example: REM *** Load a 1.44MB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 1440 REM *** Load a 2.88MB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 2880 REM *** Load a 360KB VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 360 REM *** Load a 1.84MB XDF VFloppy device *** DEVICE=\SVDISK\SVDISK.SYS 1840 The possible values for VFloppy device are: 360, 720, 1200, 1440, and 2880. Use 1520, 1840 and 3680 for XDF VFloppy. Since SVDisk defaults to a 1.44MB VFloppy device, the 1440 parameter can be omitted. To load SVDisk as a VDisk device, you can specify up to two parameters: DEVICE=\SVDISK\SVDISK.SYS ssss eeee Where ssss is the size of the VDisk device, and eeee is the root directory entries for the device. eeee is optional, and if you do not specify it, SVDisk will default to 64 root directory entries. The possible values for ssss are from 16 to 16384 (16KB to 16MB.) The VDisk device will always round up the size into 16KB 7 boundary. If you specify a 250KB VDisk device, it will be loaded as 256KB. The possible values for eeee are from 16 to 1024. This value is also rounded up in multiple of 16. If you load a VDisk device near the size of 4MB, it will attempt to resolve the File Allocation Table (FAT) size as either 12-bit or 16-bit. In the case of conflict due to a large root directory entries specification, SVDisk will slightly reduce the VDisk size in favor of a 12-bit FAT for lower disk sector overhead in the system area on the virtual media. SVDisk distinguishes a VDisk device from a VFloppy device solely by the ssss (size) parameter. If ssss is one of the possible values for a VFloppy device, it will load itself as a VFloppy device, and the second parameter is ignored. 8 8.0. CONTROLLING Super Virtual Disk _________________________________________________________________ Two programs are provided to control the SVDisks: SVDC.EXE and PMSVDC.EXE. PMSVDC.EXE is the Presentation Manager version of SVDC.EXE. 8.1. Super Virtual Disk Control help screen Type SVDC at the OS/2 command prompt to receive this help screen: Super Virtual Disk Control (32-bit) Version 1.17 SHAREWARE VERSION (C) Copyright 1994-95 Albert J. Shan. All Rights Reserved. For use with Super Virtual Disk driver (SVDISK.SYS) Usage: SVDC [options] Drive: [options] /c Fake a disk change. /e[f] Eject media [f = forced eject]. /i[:size] Insert media (if size is not specified, default to max. drive capacity.) Size can only be specified for the VFloppy device. Valid sizes are: 160, 180, 320, 360, 1.2, 720, 1.44, 2.88, 1.52, 1.84, 3.68. /l:size Lock SVDisk in non-swappable memory. Size is anywhere from 0 (KB) to the max. media size. /q Query SVDisk status /r[:size] Reconfigure VFloppy device capacity (if size is not specified, default to max. drive capacity.) Valid sizes are: 360, 1.2, 720, 1.44, 2.88, 1.52, 1.84, 3.68. /u Unlock non-swappable memory used by the SVDisk. Drive: Drive letter of the Super Virtual Disk. NOTE: The drive must not contain any media before reconfiguring with /r. *** Note: parameters within [] are optional. If you specify the drive letter of a SVDisk and without specifying any other options, SVDC will report the current status of the SVDisk drive as if the Query Status switch (/q) is specified. For example: [C:\SVDISK]svdc j: SVDISK.SYS Version: 1.17 Default device size: 2.88MB Current device size: 2.88MB Current media size: 1.44MB Non-swappable memory locked: 128KB 9 8.2. Options for SVDC /c Fake a disk change. This command will cause the SVDisk specified to appear as if it has been changed (ejected then reinserted.) This is accomplished by changing the Volume Serial on the SVDisk. If the program in question is looking for a change in Volume Label or a DOS program is looking for a change line bit in hardware, /c will not work. /e[f] Eject media. This will eject the media in the SVDisk, thereby releasing all memory, including locked memory (see /l and /u below) back to the system. If a program is currently running off the SVDisk, you must specify /ef to force the disk to eject. Further access to the SVDisk drive will cause a drive not ready error. /i[:size] Insert media. If size is not specified, it will insert a media with exactly the same size as the SVDisk device. For example, if the VFloppy is 2.88MB, specifying /i alone will insert a 2.88MB media into the SVDisk drive. The optional size parameter is only applicable for a VFloppy device. This allows different size media to be inserted into the VFloppy drive. If the VFloppy is a 5.25" 360KB device, the possible values are: 160, 180, 320, and 360. If the VFloppy is a 3.5" 1.44MB device, the possible values are: 720 and 1.44. Depending on the type of VFloppy device, the possible values are: 160, 180, 320, 360, 1.2, 720, 1.44 and 2.88. For XDF media, the possible values are: 1.52, 1.84, and 3.68. When the VFloppy device is an XDF device, only XDF media are supported. /l:size Lock virtual disk in non-swappable memory. This will cause the virtual memory allocated by SVDisk to be locked in real memory pages, and they will be precluded from swapping out by the system. The starting location of the lock is fixed at the beginning of the disk, at logical sector 0. The size parameter is anywhere from 0 to the maximum size of the media in the SVDisk. It will be rounded up in 4KB in size as OS/2 can only lock memory in 4KB page boundary. A size of 0 is equivalent to unlocking all the memory (see /u switch below.) If a lock already exists on the SVDisk, it will be released, and the new lock size will be installed. If there is not enough real memory for the lock, /l will fail, and at the same time, releasing any memory previously locked. The OS/2 kernel will swap out other processes in order to make room for the lock. This may take a while as pages are being swapped out. The system will not be 10 responsive when the kernel is into heavy paging activities. WARNING: Locking memory as non-swappable has the same effect as removing system memory on the hardware level. If you have an 8MB system, locking a few mega bytes of memory will make your system appear as if it has 4MB total system memory or less. If the lock succeeds in locking large amount of memory, and the remaining non- swappable memory is extremely low, the OS/2 virtual memory paging mechanism will thrash. Although the system is not crashed, it will be paging in and out so frequently that the system can no longer respond to the user's input. You will need to press Ctrl-Alt-Del to recover in this case. In general, it is recommended not to lock more that one quarter of total system memory as non-swappable for all SVDisk devices combined. PMSVDC.EXE will limit the maximum of the lock to half of total system memory or the maximum disk size, whichever is less. On the other hand, SVDC.EXE is designed to be flexible, so any lock size is possible. /q Query SVDisk Status. The following is a typical SVDisk report: SVDISK.SYS Version: 1.17 Default device size: 2.88MB Current device size: 2.88MB Current media size: 1.44MB Non-swappable memory locked: 128KB /r[:size] Reconfigure VFloppy device capacity. This switch is only applicable to the VFloppy device. It allows dynamic device reconfiguration while the system is running. Before you can reconfigure the VFloppy device, the media must be ejected first via the /e switch. Specifying /r alone will reconfigure the VFloppy device to the initial capacity as loaded by the device driver. The VFloppy device can be reconfigured to any other valid type of VFloppy device. For XDF device, the possible values are: 1.52, 1.84, and 3.68. /u Unlock non-swappable memory used by the SVDisk. This is the same as specifying /l:0. Locked memory is released as being swappable. 11 8.3. PM Super Virtual Disk Control The Presentation Manager version of Super Virtual Disk Control (PMSVDC.EXE) provides identical functions as SVDC.EXE with one exception. The lock function will limit the maximum available memory for the lock as half of total system memory or maximum media size, whichever is less. This means if you have 16MB of memory, and your VDisk device is 16MB, the largest memory size you can lock is 8MB. Many system boards reserve up to 384K of memory for shadow ROM and other purposes. This effectively reduces your total system memory. Instead of 16MB (16384KB), you get 16000KB total system memory under OS/2 and the maximum size for the lock in this case is 8000KB. The lock function also warns you if you are locking more than one quarter of the total system memory. If you have multiple SVDisk devices, PMSVDC will add up all memory locked by all SVDisk devices, subtract the existing lock size on the current device, then add the new requested size to see if it exceeds one quarter total system memory limit. In general, the total memory locked by all SVDisk devices should be less than one quarter of the total system memory to prevent OS/2 pager from thrashing. 8.4. Using XDF VFloppy for XDF image files In order to use an XDF (eXtended Density Format) image file on a VFloppy device, the VFloppy device must be reconfigured to one of the XDF type VFloppies. The available capacities for XDF diskettes are as follows: 5.25" 1.2MB media: 1520KB XDF (1.52MB) 3.5" 1.44MB media: 1840KB XDF (1.84MB) 3.5" 2.88MB media: 3680KB XDF (3.68MB) For example, if your VFloppy has drive letter J:, you can reconfigure it to 1.84MB XDF VFloppy as follows: SVDC J: /e SVDC J: /r:1.84 /i The included program, XDFSVD.EXE (XDF Copier for SVDisk) is designed for transferring XDF diskette images to and from an XDF VFloppy. XDFCOPY.EXE included in OS/2 Warp Version 3 is designed to transfer XDF images to and from a real diskette drive (A: or B:.) XDFCOPY.EXE cannot be used on an XDF VFloppy. And likewise, XDFSVD.EXE cannot be used on a real diskette drive. To transfer an XDF Image file to an XDF VFloppy: XDFSVD DISK5.DSK J: 12 To transfer an XDF VFloppy to an XDF Image file: XDFSVD J: DISK5.DSK Here is a typical screen when you run XDFSVD: XDF Image file -> XDF SVDisk Press Enter to continue, Ctrl-C to stop... 75% written to SVDisk J: The "Press Enter to contiune..." prompt can be bypassed by specifying the /s switch (type XDFSVD by itself to see the help screen.) NOTE: When a VFloppy is used in XDF mode, it does not try to emulate the actual mechanism used by a real XDF diskette. It does not have the special boot sector and file system information of a real XDF diskette. The following scenario is not a valid way to create a real XDF diskette: - Reconfigure a VFloppy to an XDF VFloppy - Create files on the XDF VFloppy - Use XDFSVD to create an XDF image file - Use XDFCOPY to transfer the XDF image file to a real diskette The proper way for editing the contents of an XDF diskette via XDF VFloppy is as follows: - Reconfigure a VFloppy to an XDF VFloppy - Use XDFCOPY to create an XDF image file from a real XDF diskette - Use XDFSVD to transfer the XDF image file to the XDF VFloppy - Edit the contents of the XDF VFloppy - Use XDFSVD to create the new XDF image file - Use XDFCOPY to create the new XDF diskette 8.5. Formatting SVDisk as HPFS NOTE: Using the High-Performance File System (HPFS) on SVDisk requires special considerations and understanding of OS/2 and the HPFS file system. THE ONLY SUPPORTED HPFS.IFS DRIVERS ARE THE ONES IN OS/2 2.1 AND OS/2 WARP VERSION 3. HPFS.IFS in OS/2 2.11 (ServicePak XR06200) is not supported due to a severe bug in the HPFS driver. If you are using OS/2 2.11, you must copy the HPFS.IFS driver from the original OS/2 2.1 installation diskettes (diskette 1). FAILURE TO USE THE CORRECT HPFS DRIVER WILL CAUSE SYSTEM CRASH WHEN DATA IS COPIED TO A HPFS SVDISK. 13 Two utilities are included for handling HPFS on SVDisk: HFORMAT.EXE and HMOUNT.EXE. HFORMAT formats any SVDisk into HPFS file system format. It does it by temporary reconfiguring SVDisk to appear as a non-removable disk, and then calls the OS/2 FORMAT.COM program to perform the HPFS formatting. HFORMAT will verify the drive to make sure it is a SVDisk before proceeding with FORMAT.COM. Once a SVDisk is formatted as HPFS, HFORMAT will reconfigure SVDisk back to a removable disk device. HFORMAT requires the SVDisk media to be at least 1MB in size. Since HPFS requires approximately 200KB for the file system structures, it is not pratical to have HPFS on a low capacity media. Before you can format a SVDisk as HPFS, the HPFS.IFS driver must be installed. If you are not using HPFS, you can install the HPFS driver using Selective Install in the System Setup folder. HPFS is usually installed as the first line in CONFIG.SYS. A typical HPFS.IFS line in CONFIG.SYS looks like the following: IFS=C:\OS2\HPFS.IFS /CACHE:128 /CRECL:4 /AUTOCHECK:C This specifies the HPFS Installable File System (IFS) with 128KB cache; a caching threshold of 4KB, and automatic CHKDSK of C: drive upon boot. For performance reason, HPFS is not recommended for system with 4MB of system memory. Once HPFS is installed, you can format a SVDisk into HPFS. To do so, type: HFORMAT D: where D: is the drive letter of the SVDisk drive. You can specify a volume label with HFORMAT: HFORMAT D: /v:SUPERDISK This will format the SVDisk D: as HPFS and assign SUPERDISK as the volume label. If you want to format a HPFS SVDisk back to FAT, the easiest way is to eject the media (/e), and insert (/i) a new one. If you wish to use FORMAT.COM to do the formatting, you must first unmount HPFS from the SVDisk. Since HPFS is not designed for removable media, special media handling is necessary to prevent HPFS from crashing. HPFS is mounted to the OS/2 File System whenever OS/2 detects a HPFS drive during boot or after a successful HPFS disk format with FORMAT.COM. However, OS/2 does not provide a way for unmounting a HPFS drive. If you eject a HPFS media from a removable drive, the HPFS driver will crash when it attempts to flush the disk cache later, or when you shutdown the operating system. Since 14 the majority of the diskette drives have a mechanical eject button; the media can be ejected without the control of the file system driver. This is the primary reason why HPFS is not supported for the diskette drive. SVDC.EXE and PMSVDC.EXE have built-in HPFS unmounting capability. When you eject a HPFS SVDisk, it will unmount the HPFS file system before the disk is ejected, thereby preventing HPFS from crashing. If your HPFS SVDisk drive is in use by another process (such as open files, or a process running off the HPFS SVDisk), SVDC and PMSVDC eject function will disallow the removal of the media. This is done to prevent HPFS from crashing since there is no way to flush or unmount HPFS if a process is running off of that disk. If you wish to manually unmount HPFS off a SVDisk, you can do so with HMOUNT.EXE. HMOUNT has two modes of operation: mounting and unmounting HPFS. To unmount a HPFS SVDisk, do the following: HMOUNT D: /u Where D: is the drive letter of the HPFS SVDisk drive. Once HPFS is unmounted from the SVDisk, you can no longer access the drive's contents. At this point, OS/2 believes the current file system on the SVDisk drive is FAT, and will not display the contents of the drive correctly. You can mount the drive back with HMOUNT by typing: HMOUNT D: You can force HPFS to flush the cache by unmounting and then remounting the disk. NOTE: It is the user's responsibility to make sure nothing is written to an unmounted HPFS media before it is mounted as HPFS again. HPFS may crash if the file system structures are severely damaged. Since HPFS provides superlative caching performace, the use of non-swappable memory locking (/l in SVDC) is unnecessary and should be avoided to conserve system memory. 8.4.1 HPFS Diskettes Since a VFloppy can be formatted as HPFS, you can transfer, for example, a 1.44MB HPFS VFloppy onto a real diskette. The supported HPFS diskette sizes are: 1.2MB, 1.44MB, and 2.88MB. HFORMAT cannot format a real diskette as HPFS because the IBM1FLPY.ADD/IBM2FLPY.ADD driver prevents the change of one 15 critical diskette parameter which is needed by HFORMAT.EXE and OS/2's FORMAT.COM. DISKCOPY cannot be used to transfer HPFS VFloppy to a real diskette because it expects both the source and target file systems to be FAT. You will need to use a Diskette Imaging program such as Disk eXPress (DXP.) Disk eXPress Version 2.33 or later is required. Shareware version of Disk eXPress can be found on most major OS/2 BBSes. To image a HPFS VFloppy, you will need to save the entire contents of the disk. With Disk eXPress, you can do this by: DXP32 D: HPFS1440 /a Where D: is the 1.44MB HPFS SVDisk drive (VFloppy device), and HPFS1440 is the self-extracting diskette image file. The /a switch (read the entire diskette) is not really required, as Disk eXPress detects the HPFS VFloppy as a non-DOS media, and will automatically read the entire diskette. Once the diskette image is created, you can restore it onto a real diskette. You can do this by typing: HPFS1440 A: (if the diskette is formatted) OR DXP32 HPFS1440.EXE A: /f (if the diskette is unformatted) In order to use a HPFS diskette, you must first mount the media for use. This is accomplished with HMOUNT. HMOUNT A: Normally, OS/2 will mount a HPFS disk if it detects it to be HPFS when you first access it. This means if a HPFS diskette is inserted into the drive and accessed without HMOUNT, OS/2 will recognize it, and access the contents correctly. However, this is only true when you are dealing with 1.2MB and 1.44MB drives. With the 2.88MB drives, it is imperative that you use HMOUNT to mount a 1.44MB HPFS diskette. HMOUNT will temporary reconfigure your floppy hardware to appear as a 1.44MB diskette drive. This is necessary to allow HPFS to function correctly for the 1.44MB media in the 2.88MB diskette drive. When you unmount a 1.44MB HPFS diskette from a 2.88MB drive, the drive parameter is not restored, and OS/2 believes you still have a 1.44MB diskette drive. In order to restore diskette hardware parameters to 2.88MB, a 2.88MB HPFS diskette must be prepared in advance using a 2.88MB HPFS SVDisk. To restore the 2.88MB hardware status, you must mount then unmount a 2.88MB HPFS diskette. To do so, insert the 2.88MB HPFS diskette, perform a HMOUNT to mount the diskette and then perform a HMOUNT /u to unmount HPFS from the drive. 16 CAUTION: Make sure a HPFS diskette is unmounted with HMOUNT /u before ejecting it from the diskette drive. Failure to do so will cause HPFS to crash when it attempts to flush the cache or during a system shutdown. If you accidentially ejected a HPFS diskette, you must reinsert it into the drive immediately, and execute HMOUNT /u to unmount HPFS. Failure to do so before HPFS has a chance to update the media will lead to system crash. 8.4.2 HPFS386 on IBM LAN Server Advanced Edition SVDisk does not support HPFS386 on IBM LAN Server Advanced Edition. This particular version of HPFS requires Scatter/Gather support in the device driver level. SVDisk currently does not support Scatter/Gather. Formatting SVDisk as HPFS under HPFS386 will lead to system crash. 8.6. Diskette boot bypass using VFloppy SVDisk contains a special boot sector under FAT which can be used to bypass a real floppy boot. You can do this by transferring the image of a VFloppy device with DISKCOPY to a real diskette. If you leave the diskette in drive A:, upon system reboot, you will get the following message on the screen: Transferring system boot from diskette to hard drive... And the boot sequence will be transferred to the hard drive. If you have OS/2 Boot Manager installed, you will see the Boot Manager at this point. 17 9.0. PROGRAMMING INFORMATION _________________________________________________________________ When SVDisk is used as a VFloppy device, it tries to emulate a real floppy drive as much as possible. However, this emulation is not 100%. If you write a program against the behavior of a real floppy drive, it will almost certainly work with SVDisk. The converse is not always true. This is because SVDisk makes certain assumptions to simplify many of the internal operations which are true for a virtual device. The common pitfall is to assume reading and writing to a floppy device are always slower than other computational threads. If a multithreaded OS/2 application is designed with the above assumption, it will almost certainly fail because the disk read/write operations are much faster than the program has expected. SVDisk supports the following IOCtl Category 8 logical disk commands (in hex): 00 Lock drive 01 Unlock drive 02 Redetermine media 04 Begin format 20 Block removable 21 Query logical map 43 Set device parameters (the changing the BPB of the device is not supported) 44 Read track 64 Write track 65 Verify track 45 Format and verify track 60 Query media sense 63 Query device parameters Please refer to OS/2 2.x SDK (Software Development Kit) on programming the IOCtl interface. 18 10.0. EXAMPLES _________________________________________________________________ The following examples assume you have the following lines installed in CONFIG.SYS: DEVICE=D:\SVDISK\SVDISK.SYS 8192 512 DEVICE=D:\SVDISK\SVDISK.SYS 2880 CALL=D:\SVDISK\SVDC.EXE H: /i CALL=D:\SVDISK\SVDC.EXE I: /i:1.44 The first SVDisk is an 8MB VDisk device with 512 root directory entries, with drive letter 'H' assigned to it by OS/2. The second SVDisk is a 2.88MB VFloppy device, initially loaded with a 1.44MB virtual media, and is assigned as drive 'I'. 10.1. Example 1: Locking non-swappable memory and querying status You would like to lock the first 600K of SVDisk H: in non- swappable memory, and query the status at the same time: SVDC H: /l:600 /q And you get the following report: SVDISK.SYS Version: 1.17 Default device size: 8192KB Current device size: 8192KB Current media size: 8192KB Non-swappable memory locked: 600KB 10.2. Example 2: Ejecting virtual media You can eject the virtual media in SVDisk so that all memory used (including locked memory) is returned to the operating system: SVDC I: /e If the SVDisk is in used by a process (ie: a running program, open files, etc.), you'll receive an error message: KWT0131: Drive I: is not ready or in use by another process. You can force eject the virtual media by specifying /ef: SVDC I: /ef 19 10.3. Example 3: Reconfiguring VFloppy device You want to change the VFloppy drive I: into a 1.2MB 5.25" device: SVDC I: /r:1.2 10.4. Example 4: Inserting virtual media You want to insert a 360KB virtual media into drive I:, which has just been reconfigured to a 1.2MB VFloppy drive: SVDC I: /i:360 10.5. Example 5: Multiple operations You can combine example 3 and 4 plus locking and querying all in one step: SVDC I: /r:1.2 /i:360 /l:180 /q And you'll receive this status report: SVDISK.SYS Version: 1.17 Default device size: 2.88MB Current device size: 1.2MB Current media size: 360KB Non-swappable memory locked: 180KB 20 11.0. ERROR MESSAGES _________________________________________________________________ 11.1. List of error messages The following is a list of major error messages returned by SVDC.EXE. The error return code is also displayed as part of the prefix in the error message: SVDnnnn: Error message text Where nnnn is the error return code. SVD0016: Drive X: is not a Super Virtual Disk. SVD0017: SVDISK.SYS has a higher revision level. SVD0018: Invalid media size. SVD0019: Cannot eject because the file system on drive is HPFS and is currently in use by another process. SVD0020: Unable to eject Super Virtual Disk due to memory deallocation error. SVD0021: Unable to insert Super Virtual Disk due to memory allocation error. SVD0022: No media in drive. SVD0023: You cannot insert two media in the drive. SVD0024: Incorrect size specified. SVD0025: System failed to lock memory as non-swappable. SVD0026: System failed to unlock non-swappable memory. SVD0027: No non-swappable memory locked by the Super Virtual Disk. SVD0028: Cannot reconfigure Super Virtual Disk with a media in the Drive. SVD0029: Only VFloppy type device can be reconfigured. 12.0. BACKGROUND INFORMATION _________________________________________________________________ The Super Virtual Disk device driver is written in 386 assembly language. The source files consist of over 2500 lines of assembly code, and over 3600 lines of C code. 32-bit instructions are used extensively in the device driver, with critical memory transfer loop in double word (32-bit) alignment. All the utilities programs are 32-bit executables. The device driver interface is 16-bit, as limited by the OS/2 kernel. Media is made removable to allow unrestricted virtual memory allocation. It is not possible to allocate 16MB virtual memory during device driver initialization. 13.0. ACKNOWLEDGMENTS _________________________________________________________________ German message files translation was performed by Peter Freitag. 21
 www.os2site.com/sw/drivers/filesystem/old/svd117.zip
Record updated last time on: 10/02/2019 - 07:37

Translate to...

Add new comment