|
Super |

Os
drives Q, R e S são virtuais. À direita, o Painel de
Controle do SVD.
O Super
Virtual Disk é uma ferramenta muito útil dentro do
OS/2. Permite que você tenha à sua disposição
disquetes virtuais em vários tamanhos, que servem para a
instalação de programas e para outras tarefas em que
habitalmente são utilizados disquetes físicos. Uma
característica muito interessante do Super Virtual Disk é
que os disquetes e discos podem ser formatados em HPFS.
O Super
Virtual Disk é de instalação muito simples e
tudo que você tem a fazer é ler o release contido no zip
e adicionar ao Config.sys da sua máquina as linhas adequadas
ao que você quer do SVD.
O Super Virtual Disk pode ser
obtido aqui mesmo e registrado na BMT Micro.
Click
here to download SVD118.ZIP (129k)
(Super
Virtual Disk: gera discos e disquetes virtuais)
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
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.
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.
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
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
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
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.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
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
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.
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:
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.
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
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
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.
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.
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.
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
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
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.