Copyright: Copyright ® 1991-1991 Stewart A. Berman


Contents
SAB Diskette Utility	Contents

General	Commands

Author	File

Copyright	Open

Disclaimer	SaveAs

Shareware	FileDelete

Introduction	GroupDuplicate

License	GroupDelete

Credits	Exit

Diskette

Read

Initialization	Compare

First Time	Format

Standard	Write

Browse

Copy

Special	Duplicate

Usage Hints	Label

System Diskettes	Boot Sector

Image

Convert

Copy File From

Delete File From

Copy File To

Space Available

Glossary	Cancel

Definitions	Setup

Register

Statistics

Cumulative

Session

Reset

Help


Author
Stewart A. Berman

Mr. Berman is an executive with over 20 years of experience in all aspects of MIS development and management who has yet to decided what he wants to be when he grows up.  He has worked as an electrical engineer (digital correlation equipment and television systems), programmer/analyst (electron tube simulation), systems programmer (MFT, MVT, MVS, VM, IMS, CICS, IDMS), systems integrator (MS Windows, Novell Netware, and Unix), a manager and partner in a "Big Eight" (now "Big-Six") accounting firm and a vice-president in a major bank.  Along the way he has picked up  a bachelors and masters in electrical engineering, a masters in professional accounting, and passed the CPA, CDP and MCP examinations.

Mr. Berman is currently enjoying life -- if not making a living -- as an independent consultant in New York.  His specialty is cleaning up the mess others leave behind.  He will even do Windows.

Mr. Berman can be reached via CompuServe mail addressed to 76366,1664 and Internet mail addressed to Stewart.Berman@execnet.com.  He can also be reached via snail mail addressed to Stewart A. Berman, 34 Adler Place -- Suite B, Bronx, NY 10475-3901.  Mr. Berman is also a BBSer and is known to hang out on InterLink in the Windows conference.


Copyright

COPYRIGHT (c) 1990-1995 BY STEWART A. BERMAN  ALL RIGHTS RESERVED.

Contents may not be reverse engineered.

Resources may not be separated from the rest of the system without the written permission of Stewart A. Berman.

Reproduction of the "ShareWare" package that makes up the SAB Diskette Utility is permitted only if the entire SABDUnnn.ZIP file or contents of the distribution diskette is copied.  Copies of the entire SABDUnnn.ZIP file or contents of the distribution diskette may be distributed free of charge.  Copies of the entire SABDUnnn.ZIP file or contents of the distribution diskette may be included on "ShareWare" diskettes that are sold provided that the buyer is clearly informed that they are paying for the distribution costs and not for a license for the use of the software and that they will still have to pay for the registration of SAB Diskette Utility if they wish to use it beyond the thirty day evaluation period.


Disclaimer

THIS PRODUCT IS OFFERED ON AN "AS-IS" BASIS.  THE AUTHOR MAKES ABSOLUTELY NO CLAIM THAT IT WILL WORK AS DESCRIBED OR EVEN WORK AT ALL.  THE AUTHOR DISCLAIMS ALL RESPONSIBILITY FOR DAMAGES CAUSED BY THE FAILURE OF THIS PRODUCT.  YOU HAVE A THIRTY DAY EVALUATION PERIOD TO DETERMINE WHETHER OR NOT THIS PRODUCT MEETS YOUR NEEDS.  REGISTRATION OF THIS PRODUCT GIVES YOU A LICENSE TO CONTINUE USING IT.  IT DOES NOT PROVIDE ANY GUARANTEE THAT IT WILL CONTINUE TO WORK OR EVEN CONTINUE TO RUN.

YOUR USAGE OF THIS PRODUCT INDICATES YOUR WILLINGNESS TO ACCEPT COMPLETE RESPONSIBILITY FOR ITS USE.


Shareware

Shareware distribution gives users a chance to try software before buying it.  If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also.  Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it.

OMBUDSMAN

This program is produced by a member of the Association of Shareware Professionals (ASP).  ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products.  Please write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427 USA, FAX 616-788-2765 or send a CompuServe message via CompuServe Mail to ASP Ombudsman 70007,3536.


Introduction

SAB Diskette Utility is a Windows 3 application that provides the user with a set of services that makes the copying, comparing, and formatting of diskettes a pleasure instead of a pain.  It makes use of the Input/Output (IOCTL) interface to read/format/write a track at a time..  It will copy, in a single pass, the entire contents of a diskette, at the sector level, into an image either in memory or in a temporary hard disk file.  The image can then be used to produce multiple copies of the original diskette.  The system makes use of Windows 3 Messages and Timers to work cooperatively with other Windows 3 applications.  It can be run entirely in Iconic mode.


License

THIS PRODUCT IS NOT FREE.  IT IS OFFERED ON A "SHAREWARE" BASIS.  YOU HAVE A TEMPORARY LICENSE TO USE THIS PRODUCT FOR THIRTY DAYS TO EVALUATE ITS USEFULNESS TO YOU.  IF YOU WISH TO KEEP USING IT YOU MUST REGISTER IT.

To register SAB Diskette Utility select the registration option on the main menu, fill in the information, print the completed form, sign it, and send it with a CHECK DRAWN ON A US BANK for the appropriate amount or with U.S. CURRENCY to the address shown on the form.  Purchase orders may be used for Business - Site and Busines - Unlimited licenses.  Credit cards may also be used  see below.

The difference types of licenses available are:

Home Use ($20 US): This license gives the user the right to install a copy of SAB Diskette Utility on one non-commercial machine used at home.  A registration key will be provided that turns off the single beg screen at program termination.  An option is available to request a diskette that contains the most current released version of the software for an additional $7.50 US.

A Home Use registration (without the optional diskette) can be obtained in the CompuServe SWREG forum.  Sign onto CompuServe and GO SWREG.  The Registration ID is 1256.

Business - Single CPU ($30 US):  This license gives the user the right to install a copy of SAB Diskette Utility on one CPU used in the performance of the user's business.  A registration key will be provided that turns off the single beg screen at program termination.  An option is available to request a diskette that contains the most current released version of the software for an additional $7.50 US.

A Business - Single CPU registration (without the optional diskette) can be obtained in the CompuServe SWREG forum.  Sign onto CompuServe and GO SWREG.  The Registration ID is 1265.

Business - Site ($200 US):  This license gives the user the right to install a copy of SAB Diskette Utility on up to 100 machines used in the performance of the user's business at one location.  Additional installations at the same location are $2 per machine.  A registration key will be provided that turns off the single beg screen at program termination.  A diskette will be provided that contains the most current released version of the software.

Business--Unlimited ($500 US):  This license gives the user the right to install a copy of SAB Diskette Utility on up to 500 machines used in the performance of the user's business anywhere in the world.  Additional installations are $1 per machine.  A registration key will be provided that turns off the single beg screen at program termination.  A diskette will be provided that contains the most current released version of the software.

Renewals: If you are already a registered user of an older version of SAB Diskette Utility and you would like to upgrade your registration to a version released more than six months after your original registration you can do so for half of the current registration fee.  Press the PRINT button on the Registration screen and the system will print a renewal form with the 50% discount.

Users that are registered through the purchase of a book with a registered version in it or through the purchase of a computer with a registered version installed can still get the renewal price on an upgrade.  Go to the registration screen and change the name, address, telephone number, registration type and diskette type to your personal information.  Press the PRINT button on the Registration screen and the system will print a renewal form with the 50% discount.

Note: 	All registration keys will be recognized by new versions that are released within six months of the original registration.

Source licenses are also available.  Please contact the author for terms.

CREDIT CARD ORDERS ONLY -

You can order with MC, Visa, Amex, or Discover from Public (software)

Library by calling 800-2424-PsL or 713-524-6394 or by FAX to 713-524-6398

or by CIS Email to 71355,470. You can also mail credit card orders to PsL

at P.O.Box 35705, Houston, TX 77235-5705.  Specify Item #11779.

THE ABOVE NUMBERS ARE FOR CREDIT CARD ORDERS ONLY.  THE AUTHOR OF THIS PROGRAM CANNOT BE REACHED AT THESE NUMBERS.

There is a $5.00 US fee for processing the credit card transaction.

Any questions about the status of the shipment of the order, refunds,

registration options, product details, technical support, volume discounts,

dealer pricing, site licenses, non-credit card orders, etc, must be directed

to Stewart A. Berman: 76366.1664@compuserve.com

To insure that you get the quickest service, PsL will notify us the day of

your order and we will ship directly to you.


Credits

The development of this program was aided by the generous assistance of many people through the InterLink BBS network and the CompuServe network.  They have been a continuing source of information, including coding examples, without which it would have been impossible to complete this product.

It should be noted that the help information for the use of the keys comes from an example provided with the Microsoft Software Development Kit (SDK) for Windows.  It was included to insure that the key usage description was consistent with other Windows based products.


File

The File command invokes the file submenu containing the Open, SaveAs, GroupDuplicate GroupDelete and Exit commands.

To invoke the File submenu "click" on the File menu item or press the Alt key followed by the F key.


Open

The Open command will open a file containing a previously saved diskette and read the contents into the current image.

To invoke the Open Command "click" on the File menu item and then "click" on the Open submenu item or press the Ctrl key and the O key together.

A truncate option is available that will limit the data read to cylinders containing allocated clusters.  Unallocated cylinders will be ignored.

The file selection dialog box that comes up allows you to select the previously saved diskette image that is to be read back into memory.  The default extension is .SDU.  The default directory is the last one you used for Open, SaveAs or FileDelete.  If you have not used any of them the current directory is used.


SaveAs

The SaveAs command will open a file on disk and write a copy of the current diskette image into it.

To invoke the SaveAs command "click" on the File menu item and then "click" on the SaveAs submenu item or press the Ctrl key and the A key together.

A truncate option is available that will limit the data written to cylinders containing allocated clusters.  Unallocated cylinders will be ignored.

The file selection dialog box that comes up allows you to select the file name that the diskette image will be saved as..  The default extension is .SDU.  The default directory is the last one you used for Open, SaveAs or FileDelete.  If you have not used any of them the current directory is used.


FileDelete

The FileDelete command will delete a diskette image file.

To invoke the FileDelete command "click" on the File menu item and then "click" on the FileDelete submenu item or press the Ctrl key and the T key together.

The file selection dialog box that comes up allows you to select the file name that will be deleted.  The default extension is .SDU.  The default directory is the last one you used for Open, SaveAs, or FileDelete.  If you have not used any of them the current directory is used.


GroupDuplicate

The GroupDuplicate command will open a control file that describes a group or set of diskette images to be transferred to diskettes.  The format of the control file is:

[Group]

One line description of group of diskettes

; This is a comment line.  It may appear anywhere

; in the file after the description line.

These lines

will be displayed immediately

after the group is selected by a user.

There can be zero or more lines.

!This will be used as a title for Auto Group Create

>These lines

           will be displayed as part of

   the prompt message for the diskette.

There can be zero or more lines.

@file1.SDU

; The following lines will be displayed after the

; diskette image is copied to diskette.

Please label diskette #1 as:

Disk 1

@file2.SDU

Please label diskette #2 as:

Disk 2

The diskette image files (i.e. file1) must be in the same directory as the control file.  They must include the file extension and may not include a path.  The group file extension should be SDG (i.e. BUDGET.SDG).

To invoke the GroupDuplicate command "click" on the File menu item and then "click" on the GroupDuplicate submenu item or press the Ctrl key and the G key together.

The file selection dialog box that comes up allows you to select the control file for the group restore.  The default extension is .SDG.  The default directory is the last one you used for either Group Duplicate or Group Delete.  If you have not used either one the current directory is used.

Each time a different file is highlighted in the selection list box it is open and information indentifying the group is displayed.  This consists of a one line title followed by a brief description of the group.

The Multiple Set option will cause the system to continue to create sets of diskettes until the user cancels the duplication.

The Verify option will casue the system to varify each diskette that is produced.

A group file may be automatically selected by adding its name to the command line:

SABDU.EXE /@[drive:][path]filename.SDG


GroupDelete

The GroupDelete command will open a control file that describes a group or set of diskette images to be deleted.  It will then delete all of the associated diskette images and the control file itself.  It can only be used on control files that have been used to create a set of diskettes.  The format of the control file is:

[Group]

One line description of group of diskettes

; This is a comment line.  It may appear anywhere

; in the file after the description line.

These lines

will be displayed immediately

after the group is selected by a user.

There can be zero or more lines.

!This will be used as a title for Auto Group Create

>These lines

           will be displayed as part of

   the prompt message for the diskette.

There can be zero or more lines.

@file1.SDU

; The following lines will be displayed after the

; diskette image is copied to diskette.

Please label diskette #1 as:

Disk 1

@file2.SDU

Please label diskette #2 as:

Disk 2

The diskette image files (i.e. file1) must be in the same directory as the control file.  They must include the file extension and may not include a path.  The group file extension should be SDG (i.e. BUDGET.SDG).

To invoke the GroupDelete command "click" on the File menu item and then "click" on the GroupDelete submenu item or press the Ctrl key and the G key together.

The file selection dialog box that comes up allows you to select the control file for the group delete.  The default extension is .SDG.  The default directory is the last one you used for either Group Duplicate or Group Delete.  If you have not used either one the current directory is used.

Each time a different file is highlighted in the selection list box it is open and information indentifying the group is displayed.  This consists of a one line title followed by a brief description of the group.  If the control file has been used previously to duplicate a set of diskette images a message will be displayed indicating that it and its associated files can be deleted.  If the message is not displayed the control file and associated files cannot be deleted.

A group file may be automatically selected by adding its name to the command line:

SABDU.EXE /![drive:][path]filename.SDG


Exitting
Exit

The Exit command terminates SAB Diskette Utility.  It will also save the user's statistics in the SAB.INI file.

To invoke the Exit command "click" on the File menu item and then "click" on the Exit submenu item or press the Ctrl key and the X key together.


Diskette

The Diskette command invokes the diskette submenu containing the Read, Compare, Format, Write, Browse, Copy, Duplicate, Label, and Boot Sector commands.

To invoke the Diskette submenu "click" on the Diskette menu item or press the Alt key followed by the D key.


Reading
Read

The Read command will use the Input/Output Control read (IOCTL READ) subfunction to read all of the sectors on a diskette into an image in memory or an image on hard disk in a single pass.  The decision to use a memory image or a hard disk image can be made automatically by the system based on available resources or it can be forced by the user through the disk spooling option that can be set using the setup command  The read command uses Windows 3 messages and Timers to work cooperatively with other WIndows 3 applications in sharing the systems resources.

To invoke the read command "click" on the Diskette menu item and then "click" on the Read submenu item or press the Ctrl key and the R key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.

A truncate option is available that will limit the data read to cylinders containing allocated clusters.  Unallocated cylinders will be ignored.  A cancel button is also available to terminate the read command at this point.

The system will read the contents of the diskette a track at a time.  It reads all of the tracks on a cylinder before using Windows 3 messaging and Timers to give up control to other Windows applications.

The read command will display a window with a completion notice when it finishes reading all of the sectors on the diskette.  It will also enable the menu items that require a completed diskette image to work (Compare and Write).


Comparing
Compare

The Compare command compares the contents of an image in memory or an image on hard disk with the contents of a diskette. It uses the Input/Output Control read (IOCTL READ) subfunction to read all of the sectors on a track at a time into memory.  It then compares the contents of the track with the stored image.  If there are no differences it will proceed to the next track.  If there are any differences it will ask the users whether to stop the compare function or to continue anyway with the next track.  It compares all of the tracks on a cylinder before using Windows 3 messages and Timers to give up control to other Windows applications.

To invoke the compare command "click" on the Diskette menu item and then "click" on the Compare submenu item or press the Ctrl key and the C key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.  A truncate option is available that will limit the data compared to cylinders containing allocated clusters.  Unallocated cylinders will be ignored.  A cancel button is also available to terminate the compare command at this point.

The compare command will display a window with a completion notice when it finishes comparing all of the sectors on the diskette.


Formatting
Format

The Format command formats an entire diskette.  The format command uses Windows 3 messaging and Timers to work cooperatively with other WIndows 3 applications in sharing the systems resources.

To invoke the format command "click" on the Diskette menu item and then "click on the Format submenu item or press the Ctrl key and the F key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.

Enter the new volume label into the Vol field.  If you want to increment the volume label enter the amount to use as the increment into the Inc field.  If you use the increment option the Vol field must contain a series of decimal digits to act as the starting number.  The system will search the Vol field from the right to find the area to increment.

The System option can be selected by "clicking" on it.  The DoubleSpace/DriveSpace option can be selected by "clicking" on it.  The Quick  option can be selected by "clicking" on it.  The Fast Start option can be selected by "clicking" on it.  A cancel button is also available to terminate the format command at this point.  If the selected diskette drive supports more than one format mode a pop-up menu will be displayed listing the available formatting modes.

The format command will attempt to read the first sector and analyze the Diskette Parameter Table (DPT) before formatting.  If it can read the first sector and the format mode of the diskette does not match the format mode requested it will terminate the format operation.

Formatting is done using the Input/Output Control format (IOCTL FORMAT) subfunction to format a track at a time.  It formats all of the tracks on a cylinder before using Windows 3 messaging and Timers to give up control to other Windows applications.

The format command will display a window with a completion notice when it finishes formatting the entire diskette.

NOTE: The format command will stop if there are bad sectors on the diskette.  It will prompt for a retry/cancel/ignore response from the user.  A response of ignore will cause the format to continue and the cluster(s) containing the bad sector(s) to be marked as bad in the diskette's File Allocation Table.


Writing
Write

The Write command will use the Input/Output Control write (IOCTL WRITE) subfunction to write all of the sectors on a diskette from an image in memory or an image on hard disk in a single pass.  The write command uses Windows 3 messaging and Timers to work cooperatively with other WIndows 3 applications in sharing the systems resources.

To invoke the Write command "click" on the Diskette menu item and then "click" on the Write submenu item or press the Ctrl and the W key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.

If you want to change the volume label enter the new volume label into the Vol field.  If you want to increment the volume label enter the amount to use as the increment into the Inc field.  If you use the increment option the Vol field must contain a series of decimal digits to act as the starting number.  The system will search the Vol field from the right to find the area to increment.

After each diskette is written the system will increment the Vol field and update the volume label of the current diskette image in memory.  You can then use the SaveAs function to save the diskette image with the next volume label number to be used.

A truncate option is available that will limit the data written to cylinders containing allocated clusters.  Unallocated cylinders will be ignored.

The verify option defines whether the system will verify data written to a diskette.  The write process with the verify option on consists of writing a track's worth of data, reading it back into memory and comparing it with the original information in memory.

The format option defines whether the system will always format the output diskette when writing to it, never format the output diskette, or format the output diskette only when it cannot read it.  The fast start format option indicates that the diskette is not to be checked before formatting.

A cancel button is also available to terminate the write command at this point.

The system will write the contents of the diskette a track at a time.  It writes all of the tracks on a cylinder before using Windows 3 messaging and Timers to give up control to other Windows applications.

The write command will display a window with a completion notice when it finishes writing all of the sectors on the diskette.


Browsing
Browse

The Browse command will display information about a diskette.

To invoke the Browse command "click" on the Diskette menu item and then "click" on the Browse submenu item or press the Ctrl and the E key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.


Copying
Copy

The Copy command is a combination of the Read and the Write commands.  It should be used when single copies of one or more diskettes will be made.

To invoke the Copy command "click" on the Diskette menu item and then "click" on the Copy submenu item or press the Ctrl and the Y key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.


Duplicating
Duplicate

The Duplicate command is a combination of the Read and the Write commands.  It should be used when multiple copies of a single diskette will be made.

To invoke the Duplicate command "click" on the Diskette menu item and then "click" on the Duplicate submenu item or press the Ctrl and the D key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.


Labelling
Label

The Label command changes the volume label of the diskette.

Enter the new volume label into the Vol field.  If you want to increment the volume label enter the amount to use as the increment into the Inc field.  If you use the increment option the Vol field must contain a series of decimal digits to act as the starting number.  The system will search the Vol field from the right to find the area to increment.

To invoke the Label command "click" on the Diskette menu item and then "click" on the Label submenu item or press the Ctrl and the L key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.


Replacing Boot Sector
Boot Sector

The Boot Sector command can be used to replace the boot sector of a floppy diskette without reformatting it.

The System option determines the type of boot sector used.  If it is selected the boot sector will contain the same code as the active boot partition of the hard drive.  This is the code that will boot from the floppy diskette if it is in the A: drive when the system is booted.  If it is not selected the boot sector will contain code that will boot from the hard drive if the floppy diskette is in the A: drive when the system is booted.

To invoke the Boot Sector command "click" on the Diskette menu item and then "click" on the Boot Sector submenu item or press the Ctrl and the B key together.  A window will open with instructions to insert the diskette into the appropriate diskette drive and press the button corresponding to the drive.


Image

The Image command provides access to the diskette memory image manipulation commands.


Converting Diskette Formats
Convert

The Convert command can be used to change the diskette memory image format.  It will present the user with a choice of formats that can support the amount of data in the diskette memory image.  Convesion will preserve the boot sector and reserve sectors.  Files are 'copied' to the new image format.  If you need to preserve the Cylinder-Head-Sector address see the Usage Hints for information on an alternative method of conversion.  To invoke the convert command "click" on the Image menu item and then "click" on the Convert submenu item or press the Ctrl key and the V key at the same time.


Copy File From Diskette Image
Copy Image File From

The Copy Image File From command can be used to copy a file from the diskette image.  To invoke the Copy Image File From command "click" on the Image menu item and then "click" on the Copy Image File From submenu item or press the Ctrl key and the J key at the same time.


Delete File From Diskette Image
Delete File From

The Delete File From command can be used to delete a file from the diskette image.  To invoke the Delete File From command "click" on the Image menu item and then "click" on the Delete File From submenu item or press the Ctrl key and the K key at the same time.


Copy File To Diskette Image
Copy Image File To

The Copy Image File To command can be used to copy a file to the diskette image.  To invoke the Copy Image File To command "click" on the Image menu item and then "click" on the Copy Image File To submenu item or press the Ctrl key and the P key at the same time.


Determine Space Available on Diskette Image
Image Space Available

The Image Space Available command can be used to find out how much space is available on the current diskette image.  To invoke the Image Space Available command "click" on the Image menu item and then "click" on the Space Available submenu item or press the Ctrl key and the S key at the same time.


Cancelling
Cancel

The Cancel command can be used to stop any of the long running SAB Diskette Utility functions.  It is only enabled during Read, Compare, Format, and Write command operations.

To invoke the cancel command "click" on the cancel menu item or press the Alt key and then the C key.


Help

The Help command provides access to the on-line help for SAB Diskette Utility.  It also provides access to the "About Box" that identifies the copyright owner.

To invoke the help command "click" on the help menu item or press the Alt key and then the H key.


Setting Up

The Setup command provides the user with the ability to select the appropriate settings for the maximum and minimum Timers, the desired image spooling option, the desired format while writing option, the desired sound setting, and to change diskette drive definitions.

(1) The Head timer defines the number of milliseconds that the system will wait before starting a track's processing.  The default setting of one is necessary to allow DOS applications with PIFs that prompt the user for input to start properly.  The way the system is designed it should not be necessary to increase this timer unless the interruption caused by repeated diskette operations is disruptive to time critical applications running at the same time.  The use of this timer will increase the time between diskette accesses.  Unfortunately Windows 3 does not provide the ability to have other tasks use the CPU while one task is waiting for a diskette operation to complete.  Since diskette operations take a relatively long time a series of closely executed ones might prove disruptive to other applications running at the same time.

(2) The Cyl. timer defines the number of milliseconds that the system will wait before starting a cylinder's processing.  The way the system is designed it should not be necessary to increase this timer unless the interruption caused by repeated diskette operations is disruptive to time critical applications running at the same time.  The use of this timer will increase the time between diskette accesses.  Unfortunately Windows 3 does not provide the ability to have other tasks use the CPU while one task is waiting for a diskette operation to complete.  Since diskette operations take a relatively long time a series of closely executed ones might prove disruptive to other applications running at the same time.

(3) The Sound timer defines the number of seconds between beeps if the sound option is selected.  (See sound option below).

(4) The hard disk spooling option defines whether the system will always use the hard drive for the diskette image, never use the hard drive for the diskette image, or only use the hard drive for the diskette image if insufficient memory is available.

(5) Options:

The sound option defines whether the system will beep at the end of a diskette operation (compare, format, read, write).

The exit option defines whether the system will prompt for confirmation when the user exits the application.

The flash option defines whether the system will flash its window or Icon when a function completes.  If flash is not selected the system will pop-up a dialog box immediately after a function completes and make it the active window.  If flash is selected the system will flash its window or Icon and wait for the user to make it the active window before displaying the dialog box.

The RBHelp option changes the way the status/information bar works.  If the RBHelp option is not selected the status/information bar is updated everytime the mouse moves across a control.  If the RBHelp option is selected the status/information bar is only updated when the right mouse button is pressed.

The Shrink option changes the way the window behaves.  The window will always expand vertically if it needs to to display information.  If the Shrink option is selected the window will contract vertically if the information display gets smaller.  If the Shrink option is not selected the window will not contract vertically when the information changes.

(6) The operation temination buttons: Pressing the OK button will tell the system to save the new setup information.  Pressing the Cancel button will tell the system to leave the setup information as it was before the SETUP menu item was selected.

(7) The Status Bar displays status/information.

(8) The Font Small option defines whether the system will use the small system font for dialog boxes.  Using the small system font makes the dialog boxes smaller.

(9) The drive types define the way the system thinks the drives can be used.  It should not be necessary to change this unless a drive is replaced, added, or removed.  However, it is possible that the actions of other applications may have changed the drive definitions just before the first use of the system and it therefore failed to define them properly.  Select the diskette drive you wish to change by "clicking" on the drives button.  If it is necessary to change a definition simply "click" on the new one.

(10) The Select Drive box contains the diskette drive selection buttons.  There will be a button for each floppy diskette drive.


Registering

The Register command may be invoked by holding down the Alt key and press the R key even if the command is not visible on the menu

The Register command is used to enter the user's name, company name (if not a Home Use license), address, phone number, E-mail address, where the software was obtained from, registration key, type of registration, optional diskette request and to print a registration form.  The first time the system is used the user's name and address should be entered and saved.  Please see the License section for pricing information.

To register print the completed form, sign it, and send it with a CHECK DRAWN ON A U.S. BANK for the appropriate amount or with U.S. CURRENCY to the address shown on the form.

Credit cards can also be used. Please see the License section for ordering information.

Purchase Orders may be used for Business - Site and Business - Unlimited registrations.  However, the invoice must be paid with a CHECK DRAWN ON A U.S. BANK for the appropriate amount or with U.S. CURRENCY.

Non-United States users can use the two address lines for their address, the city field for their country, and place a single period in the state and zip-code fields.

(1) The Name field (reguired) should be filled in with the name of the person that the software is to be registered to.  Site and Unlimited licensees may use a department name instead of an individual.  If a deparment name is used the software will be mailed to the person signing the registration form.

(2) The Company field (required) should be filled in with the name of the company if this is a Business - Single CPU, Business - Site or Business - Unlimited registration.  If the registration is Home Use the Company field will be set to "Personal Copy".

(3) Three line Address:

The Address field (first line is required) should be filled in with the mailing address.  The registration key (and optional diskette) will be sent to the address entered in this field.

The City, State and Zip Code (required) fields should be filled in with the rest of the mailing address information.  The Extended ZIp Code field is not required but will be used if filled in.

(4) The Telephone Number field (not required) should be filled in with a day time number.

(5) The E-Mail Network Name and E-Mail Userid (not required) are for your primary communications network.

(6) The Downloaded From field (not required) should be filled in with the name or description of the place you obtained your copy of the software.

(7) The registration key will be sent to the user after the registration agreement and fee have been received by the author.  Once a valid registration key has been entered the Register command will be removed from the menu.

(8) The diskette type indicates whether a user wants to receive the optional diskette and if so what type.

(9) The registration type should be selected by "clicking" on the option desired.  Please note that the choice of a Home Use registration will force the company name to "Personal Copy".

The units should be set to the number of machines that the software will be installed on for Business - Site or Business - Unlimited registrations.  (It is always 1 for Home Use and Business - Single CPU registrations.)

(10) The type of payment.  Chose Check or one of the credit card types.

(11) The expiration date of the credit card.  It must be at least five characters - MM/YY.

(12) The number on the credit card.  Make sure you include all digits.

(13) After all of the information, except the registration key, has been entered a registration form can be printed by pressing the Print button.  That will print a registration form and save the user's information.  Pressing the Save button will save the information without printing a registration form.  Pressing the Cancel button will terminate the registration command without saving the information.

(14) The Status Bar displays current status/information.

The information entered, with the exception of the payment type and credit card number and expiration date, is saved in the SAB.INI file.  The credit card information is not saved.  It must be entered at the time the registration form is printed.


Statistics

The Statistics command invokes the submenu containing the Cumulative, Session and Reset commands.

To invoke the Statistics command "click" on the Statistics menu item or press the Alt key and then the T key.


Cumulative Statistics

The Cumulative Statistics command provides access to the cumulative usage statistics for SAB Diskette Utility.  These contain a count of the number of functions performed since SAB Diskette Utility was installed.

To invoke the Cumulative Statistics command "click" on the Statistics menu item and then "click" on the Cumulative menu item or press the Ctl key and the M key.


Session Statistics

The Session Statistics command provides access to the session usage statistics for SAB Diskette Utility.  These contain a count of the number of functions performed since SAB Diskette Utility was started or since the session statistics were reset.

To invoke the Session Statistics command "click" on the Statistics menu item and then "click" on the Session menu item or press the Ctl key and the I key.


Reset Statistics

The Reset Session Statistics command resets the session usage statistics for SAB Diskette Utility.

To invoke the Reset Session Statistics command "click" on the Statistics menu item and then "click" on the Reset menu item or press the Ctl key and the N key.


First Use

The first time SAB Diskette Utility is used it will display a screen that describes the evaluation terms and one that explains the disclaimer.  The user has the option to stop the installation process at that time if they do not want to abide by the terms shown by pressing the Cancel button.  Pressing the OK button accepts the terms and continues the installation.

The menu bar will have all of the menu items disabled except the Exit and Registration commands.  The Registration command should be used to enter and save the user's name and address.  Once that is done the other commands will be enabled.


Initialization
Standard Initialization

The SAB Diskette Utility uses a private INI file to store parameters in.  The name of the file is SAB.INI.  It will be created in the Windows directory the first time the system is used.

During initialization the system will obtained the size and position of the main application window the last time the system was used.  It will also obtain information stored during the use of some of the commands.  This information will be used to initialize options.


Special Usage Hints

Formatting Multiple Diskettes:

Use the SETUP function to change the definition of the diskette drive to a single density.  This will eliminate the pop-up menu for density selection.

Use the Fast Start option to turn off initial checking of target diskettes.  This will significantly speed up the formatting of new (unformatted) diskettes.

Using Unformatted Diskettes for Output:

Use the DUPLICATE command.  Set the truncate option on in the READ screen.  Put the diskette to be copied in the diskette drive and select the drive by "clicking" on it.  When the WRITE screen comes up turn on the fast start format option.  Put the first output diskette in the diskette drive and select the drive by "clicking" on it.  When the write finishes put the next output diskette in the drive and press the space bar.  Please note that only the allocated cylinders of the input diskette are copied when you use the truncate option and only the allocated cylinders will be formatted on the output diskettes during the write operation.  This is the fastest method of duplicating diskettes using unformatted output diskettes  All of the files on the output diskettes well be readable but the output diskettes will not be able to be copied using diskcopy because cylinders beyond the allocated ones will not be formatted.

The write format option should be set back to automatic when you are finished generating output diskettes.

Hardware Problems:

If the floppy diskette drive is having hardware problems use the WRITE function verify option to turn on verify when writing diskettes.  This will cause a read of data after writing and a compare to the original data.  This should only be used if there are hardware problems as it slows the write operation down significantly.

Converting Diskette Media:

A DOS floppy diskette image-- one with a standard Diskette Parameter Table (DPT) -- can be converted from one media (i.e. 5 1/4) to another (i.e. 3 1/2) without changing cylinder/head/sector relationships.  This is usefull for diskettes that have data that must be in specific sectors.  (If specific sectors are not needed it is better to use the Convert command.)  For example to copy a 1200KB floppy diskette image to a 3 1/2 floppy diskette:

1. Format the target diskette normally.  (i.e. if the target diskette is a high density 3 1/2 it should be formatted as 1440KB.

2. Use the READ function to read the original floppy diskette (i.e. a 1200KB 5 1/4 floppy diskette).

3. Use the SETUP function to change the definition of the target 3 1/2 floppy diskette drive to 1200KB.

4. Use the WRITE function to write the floppy diskette image to the target 3 1/2 floppy diskette drive.

5. Use the SETUP function to change the definition of the target 3 1/2 floppy diskette drive back to 720/1440KB.

A floppy diskette image can only be written to a higher capacity floppy diskette: 360KB ==> 720KB ==> 1200KB ==> 1440KB.

The target floppy diskette must be formatted before using the WRITE function when doing media conversion.

The target floppy diskette will have the same usable layout as the source floppy diskette.  For example a 1200KB floppy diskette image converted to a 1440KB floppy diskette will still have only 15 sectors per track accessible.  The additional three sectors per track will still be physically on the floppy diskette but DOS will not be able to access them.  To DOS the 1440KB floppy diskette will look like a 1200KB 5 1/4.  However, it will be usable in a 3 1/2 floppy diskette drive.  In fact a bootable floppy diskette image will still be bootable.


DoubleSpace/DriveSpace Option

Selecting the DoubleSpace/DriveSpace Option indicates that the target diskette is to be made DoubleSpace/Drive Space aware.  This entails copying the DBLSPACE/DRVSPACE.BIN and DBLSPACE/DRVSPACE.INI files from the C: drive.

It should be noted that the diskette is not compressed.  It is Double Space/Drive Space aware.  That means that if you boot from the diskette and you have compressed drives the compressed drives will be accessible.


Quick Option

Selecting the Quick Option indicates that the system is to re-write the DOS boot sector, the FATs, and the root directory.  This should only be used if the target diskette has already been formatted.


Fast Start Option

Selecting the Fast Start Option indicates that the system is not to check the target diskette to see if it is already formatted at the same density.  This option should be used for formatting diskettes that have never been formatted before as it will speed up the process because the system won't try to read the boot sector and then go through error recovery.


System Diskettes

Selecting the System Option indicates that the target diskette is to be made "bootable".  This entails copying the DOS boot sector from the C: drive, changing the parameter table to the appropriate values for a Diskette Parameter Table (DPT), and installing it as the first sector on the target diskette.  The two hidden system files are then copied from the C:\ (root) directory to the target diskette.  Finally, the file pointed to by the COMSPEC= environment variable (usually COMMAND.COM) is copied to the target diskette.  The diskette can then be used to "boot" from to start DOS.

It should be noted that since different vendors sometimes use different names for the system files there isn't any validation check on the names -- the first two files in the root directory of the C: drive are copied.

SAB Diskette Utility uses IOCTL to copy the boot sector of your C: drive when creating a system (bootable) diskette.  This is done to make sure that the boot sector of the diskette is compatible with the version of DOS that you are using.

Some hard disk device drivers do not support direct IOCTL access.  If you are unable to create a system diskette because of restricted access to the C: drive boot sector you can create a file containing a copy of the boot sector of your C: drive by using the following command:

             DEBUG < GETBOOTC.DBG

Note: the GETBOOTC.DBG file contains the following debug comands:

L 100 2 0 1

N SABDUSEC.DOS

RCX

0200

W 100

Q

This will create a 512 byte file called SABDUSEC.DOS which will contain a copy of the boot sector from your C: drive. You can tell SAB Diskette Utility to use it by adding the following line to the SAB.INI file in your \WINDOWS directory:

           BootSectorFile=d:\path\SABDUSEC.DOS

where d:\path\ is the drive and path that the SABDUSEC.DOS file is in.

For example if you have installed SAB Diskette Utility in C:\SABDU then do the following:

             C:

             CD \SABDU

             DEBUG < GETBOOTC.DBG

and add the following line to SAB.INI in your \WINDOWS directory:

             BootSectorFile=C:\SABDU\SABDUSEC.DOS

You can also specify the name of the system files that will be used to create the system (bootable) diskette:

             IOSysFile=

             MSDosSysFile=

             CommandComFile=

The first two specify the names of the two hidden files that are part of the boot-strap loading process.  The third one, CommandComFile, specifies the operating system shell.


Messages
Windows Messages

Windows' applications process and send "messages".  A "message" contains information about an event that has occurred.  For example, "clicking" on a menu item generates a "message".

An application can also generate and process user defined "messages".  Each portion of the application can be viewed as a closed subsystem that receives a "message", performs a task, and returns control.  Part of the task performed might be the generation of another "message".


Timers

SAB Diskette Utility uses Windows' timers to control the scheduling of its internal operations.  The way the system uses the timers is to start a timer after each cylinder operation completes and then wait for it to expire.  Thus if we are formatting a diskette the system would format a cylinder and then wait.


Iconic Operation

SAB Diskette Utility can operate completely in the Iconic mode.  The Iconic mode is when an application's window has been minimized.  It then normally displays an Icon in the lower portion of the display.

The system monitors changes to and from the Iconic mode.  When the user puts the system into the Iconic mode it modifies the system menu by adding all of the menu items that would normally appear on the menu bar.  It removes the menu items when the user takes the system out of Iconic mode.

The system will also use the space normally occupied by an Icon to display the current cylinder for read, compare, format, and write operations.  Otherwise it will display its own Icon.


IOCTL

Input/Output Control (IOCTL) is a method of communicating directly with a device driver.  SAB Diskette Utility uses the set of subfunctions associated with generic I/O control for block devices.  The IOCTL interface is accessed through an interrupt call (INT 21H -- the general DOS interrupt -- with AH(function) = 44H, AL(subfunction) = 0DH, BL = drive number, and CH = 08H) using a Parameter Block pointed to by DS:DX.  The minor subfunctions used are:

CL = 40H	Set Device Parameters

CL = 41H	Write track on logical drive

CL = 42H	Format and verify track on logical drive

CL = 60H	Get Device Parameters

CL = 61H	Read track on logical drive


Diskette Parameter Table

The Diskette Parameter Table (DPT) is located at the beginning of the first physical sector on a diskette.  It can be mapped in C using the following structure:

#pragma pack(1)

typedef strict

       {

       unsigned char  DSKJMP[3];

       unsigned char  DSKID[8];

       unsigned short DSKSECBY;

       unsigned char  DSKCLUSC;

       unsigned short DSKRESSC;

       unsigned char  DSKFATS;

       unsigned short DSKROOTD;

       unsigned short DSKSECTS;	Total sectors

       unsigned char  DSKFMTID;

       unsigned short DSKFATSC;

       unsigned short DSKTRKSC;	Sectors per track

       unsigned short DSKHEADS;	Number of heads

       unsigned long  DSKSPEC;

       unsigned long  DSKBIGTL;

       unsigned char  DSKPHYDR;

       unsigned char  DSKRESER;

       unsigned char  DSKEXNTD;

       unsigned long  DSKSRLNO;

       unsigned char  DSKVOLLB[11];

       unsigned char  DSKFATTP[8];

       } DSKPARAMS ;

#pragma pack()

Note the pack(1) pragma.  Otherwise the C compiler will align the long variables on an even boundary and the mapping will fail.


IOCTL Parameter Blocks

The IOCTL Parameter Blocks can be mapped in C with the following structures:

#define IOCTLSETPARAMETERS   0x40

#define IOCTLWRITETRACK      0x41

#define IOCTLFORMATTRACK     0x42

#define IOCTLGETPARAMETERS   0x60

#define IOCTLREADTRACK       0x61

#define IOCTLVERIFYTRACK     0x62

#pragma pack(1)

#ifndef PARAMETER_BLOCK_SWITCH

#define PARAMETER_BLOCK_SWITCH

typedef struct

        {

        BYTE PB_SpecialFunction ;

        #define PB_SPCFUNC_USECUR  0x01

        #define PB_SPCFUNC_TRKONLY 0x02

        #define PB_SPCFUNC_SECSAME 0x04

        BYTE PB_DeviceType ;

        #define PB_DEVTYPE_0320 0x00

        #define PB_DEVTYPE_0360 0x00

        #define PB_DEVTYPE_1200 0x01

        #define PB_DEVTYPE_0720 0x02

        #define PB_DEVTYPE_SD8I 0x03

        #define PB_DEVTYPE_DD8I 0x04

        #define PB_DEVTYPE_FXDK 0x05

        #define PB_DEVTYPE_TPDR 0x06

        #define PB_DEVTYPE_1440 0x07

        #define PB_DEVTYPE_2880 0x08

        #define PB_DEVTYPE_OTHR 0x08

        WORD PB_DeviceAttribute ;

        #define PB_NOREMOV 0x0001

        #define PB_DRLOCK  0x0002

        WORD PB_Cylinders ;

        #define PB_CYLINDERS_0360  40

        #define PB_CYLINDERS_0720  80

        #define PB_CYLINDERS_1200  80

        #define PB_CYLINDERS_1440  80

        #define PB_CYLINDERS_2880  80

        BYTE PB_MediaType ;

        #define PB_MEDTYPE_1200 0x00

        #define PB_MEDTYPE_0320 0x01

        #define PB_MEDTYPE_0360 0x01

        #define PB_MEDTYPE_0720 0x00

        #define PB_MEDTYPE_1440 0x00

        #define PB_MEDTYPE_2880 0x00

        WORD PB_BytesPerSector ;

        BYTE PB_SectorsPerAllocationUnit ;

        #define PB_SECTORSPERALLOCUNIT_0360    2

        #define PB_SECTORSPERALLOCUNIT_0720    2

        #define PB_SECTORSPERALLOCUNIT_1200    1

        #define PB_SECTORSPERALLOCUNIT_1440    1

        #define PB_SECTORSPERALLOCUNIT_2880    2

        WORD PB_ReservedSectors ;

        BYTE PB_FATS ;

        WORD PB_RootDirectoryEntries ;

        #define PB_ROOTDIRECTORYENTRIES_0360  112

        #define PB_ROOTDIRECTORYENTRIES_0720  112

        #define PB_ROOTDIRECTORYENTRIES_1200  224

        #define PB_ROOTDIRECTORYENTRIES_1440  224

        #define PB_ROOTDIRECTORYENTRIES_2880  240

        WORD PB_TotalSectors ;

        BYTE PB_MediaDescription ;

        #define PB_MEDIADESCRIPTION_0360 0xFD

        #define PB_MEDIADESCRIPTION_0720 0xF9

        #define PB_MEDIADESCRIPTION_1200 0xF9

        #define PB_MEDIADESCRIPTION_1440 0xF0

        #define PB_MEDIADESCRIPTION_2880 0xFF

        WORD PB_SectorsPerFAT ;

        #define PB_SECTORSPERFAT_0360  2

        #define PB_SECTORSPERFAT_0720  3

        #define PB_SECTORSPERFAT_1200  7

        #define PB_SECTORSPERFAT_1440  9

        #define PB_SECTORSPERFAT_2880  9

        WORD PB_SectorsPerTrack ;

        #define PB_SECTORSPERTRACK_0360      9

        #define PB_SECTORSPERTRACK_0720      9

        #define PB_SECTORSPERTRACK_1200     15

        #define PB_SECTORSPERTRACK_1440     18

        #define PB_SECTORSPERTRACK_2880     36

        WORD PB_Heads ;

        DWORD PB_HiddenSectors ;

        DWORD PB_LogicalSectors ;

        BYTE PB_Reserved[6] ;

        WORD PB_SectorsInTrack ;

        struct

           {

           WORD Number ;

           WORD Size ;

           } PB_SectorTable[36] ;

        } PARAMETER_BLOCK ;

typedef PARAMETER_BLOCK FAR *LPPB ;

typedef struct

        {

        BYTE PBF_SpecialFunction ;

        WORD PBF_HeadNumber ;

        WORD PBF_CylinderNumber ;

        } PARAMETER_BLOCK_FORMAT ;

typedef PARAMETER_BLOCK_FORMAT FAR *LPPBF ;

typedef struct

        {

        BYTE PBW_SpecialFunction ;

        WORD PBW_HeadNumber ;

        WORD PBW_CylinderNumber ;

        WORD PBW_SectorNumber ;

        WORD PBW_SectorCount ;

        LPBYTE PBW_TransferAddress ;

        } PARAMETER_BLOCK_WRITE ;

typedef PARAMETER_BLOCK_WRITE FAR *LPPBW ;

typedef struct

        {

        BYTE PBR_SpecialFunction ;

        WORD PBR_HeadNumber ;

        WORD PBR_CylinderNumber ;

        WORD PBR_SectorNumber ;

        WORD PBR_SectorCount ;

        LPBYTE PBR_TransferAddress ;

        } PARAMETER_BLOCK_READ ;

typedef PARAMETER_BLOCK_READ FAR *LPPBR ;

#endif

#pragma pack()

Note the pack(1) pragma.  Otherwise the C compiler will align the word variables on an even boundary and the mapping will fail


IOCTL Get Drive Parameters

Set DS:DX to point to a full IOCTL Parameter Block, set CL to 60H, set the registers for subfunction 0DH and execute the interrupt.


IOCTL Set Drive Parameters

First use IOCTL Get Drive Parameters to prime an IOCTL Parameter Block.  Then make the appropriate changes.  These would normally include the device type, number of sectors per track, and total number of sectors.  Also set the number of sectors in track in the word at offset 26H and follow it with a pair of words for each sector.  The first word is the sector number starting with one and the second word of the pair is the number of bytes in the sector.  It should always be 512 (200H). Set the special function field -- offset 00H -- to 05H (it seems to work).  Point DS:DX to the parameter block.  Set CL to 40H.  Set up the other registers for subfunction 0DH and execute the interrupt.


IOCTL Read

First use IOCTL Set Drive Parameters to set the diskette drive to the right mode for the diskette to be read.  Set the head, cylinder, and first sector field of an IOCTL Read Parameter Block to the value for the first sector to be read.  Set the number of sectors field to the number of sectors to be read.  Place the address of the input buffer in the Transfer address field.  Point DS:DX to the parameter block.  Set CL to 40H.  Set up the rest of the registers for subfunction 0DH and execute the interrupt.


IOCTL Write

First use IOCTL Set Drive Parameters to set the diskette drive to the right mode for the diskette to be written.  Set the head, cylinder, and first sector field of an IOCTL Write Parameter Block to the value for the first sector to be written.  Set the number of sectors field to the number of sectors to be written.  Place the address of the output buffer in the Transfer address field.  Point DS:DX to the parameter block.  Set CL to 41H.  Set up the rest of the registers for subfunction 0DH and execute the interrupt.


IOCTL Format

First use IOCTL Set Drive Parameters to set the diskette drive to the right mode for the diskette to be formatted.  Set the head and cylinder fields of an IOCTL Format Parameter Block to the value for the track to be formatted.  Point DS:DX to the parameter block.  Set CL to 42H.  Set up the rest of the registers for subfunction 0DH and execute the interrupt.


SAB.INI File

The SAB.INI file is used to store information from one execution of the system for use by another execution of the system.  The section of the SAB.INI file that is used by SAB Diskette Utility starts with a [SABDU].  The items stored in the file are:

Xpos=	upper left corner of window

Ypos=	upper left corner of window

XoffMSG=	horizontal offset of message boxes

YoffMSG=	vertical offset of message boxes

XposDLG=	upper left corner of dialog boxes

YposDLG=	upper left corner of dialog boxes

Width=	width of window

Height=	height of window

XposAuto=	upper left corner of window in automatic mode

YposAuto=	upper left corner of window in automatic mode

WidthAuto=	width of window in automatic mode

HeightAuto=	height of window in automatic mode

LastSize=	normal, iconic, or maximized code

FileDirectory=	default directory for images

CompareCompletedXX.X=	number of completed compares using version X.XX

CompareCancelledX.XX=	number of cancelled compares using version X.XX

FormatCompletedX.XX=	number of completed formats using version X.XX

FormatCancelledX.XX=	number of cancelled formats using version X.XX

ReadCompletedX.XX=	number of completed reads using version X.XX

ReadCancelledX.XX=	number of cancelled reads using version X.XX

WriteCompletedX.XX=	number of completed writes using version X.XX

WriteCancelledX.XX=	number of cancelled writes using version X.XX

UserName=	name of user

UserCompany=	company name

UserAddress1=	street address line 1

UserAddress2=	street address line 2

UserCity=	city

UserState=	state

UserZip=	zip code

UserZip4=	zip code extra four

UserTelephone=	telephone number

UserKey=	user key

UserDownLoaded	where user obtained product

EMailNetwork=	user's E-mail network

EMailUserID	user's E-mail userid

RegKey=	registration key

RegType=	type of registration code

Count=	number of copies (Site and Unlimited licenses)

DskType=	optional diskette type

InstallTimeX.XX=	time/date of initial installation of version X.XX

(seconds from 01/01/70)

DriveX=	type of drive code (X = A,B,...)

Timer3=	head timer value

Timer2=	cylinder timer value

Spool=	disk spooling option code

Sound=	sound option code

TimerS	interval between beeps

ExitPrompt=	exit prompt option code

Flash=	flash option code

UserNameOriginal=	name of user

UserCompanyOriginal=	company name

UserAddress1Original=	street address line 1

UserAddress2Original=	street address line 2

UserCityOriginal=	city

UserStateOriginal=	state

UserZipOriginal=	zip code

UserZip4Original=	zip code extra four

UserKeyOriginal=	user key

RegKeyOriginal=	registration key

RegTypeOriginal=	type of registration code

CountOriginal=	number of copies (Site and Unlimited licenses)


SAB Diskette Utility Definitions
Definitions

Boot Sector

Cylinder

Directory

Disable

Diskette

Disk Spooling

Drive

Enable

Format Mode

File Allocation Tabel (FAT)

Hard Disk Image

Head

INI Files

Memory Image

Sector

Track


Diskette

A form of removable storage media -- sometimes also called a floppy disk.  It consists of an outer protective envelop around a thin circular piece of magnetic media.  It is inserted into a diskette drive that contains two sets of read/write heads -- one for the top layer of the magnetic media and one for the bottom layer.  The read/write heads can only move along a single line from the outer edge of the diskette toward the center and back.  The heads move in fixed increments.  The diskette rotates in the drive and this allows the heads to access a circular section of the magnetic media for each position.


Sector

A sector is the basic unit of storage on diskettes.  It consists of a single block of data -- usually 512 characters -- written or read as a group.  The normal format of a diskette has the same number of 512 character sectors on each track.  Sectors are first created on a diskette by formatting it.  This must be done before data can be stored on the diskette.


Track

A track consists of the circular area that a single read/write head can access from one position as the diskette revolves in the drive.


Head

A head is the electromagnetic device that reads/writes the magnetic patterns on the diskette.  A diskette drive has two heads -- one for each side of the magnetic media.


Cylinder

A cylinder consists of the circular area that the read/write heads can access from one position as the diskette revolves in the drive. On a diskette a cylinder would contain two tracks -- on for each of the read/write heads.


Boot Sector

The boot sector is the first physical sector on the diskette.  It is on the first cylinder on the side of the diskette accessed by the first head.  It contains a parameter table that describes the physical structure of the diskette (number of sectors per track and number of cylinders) and its logical layout (reserved sectors, File Allocation Table (FAT) size, number of directory entries in the root directory, etc.).  It also contains the "boot program".  When an IBM compatible microcomputer starts it checks the A: drive for a diskette.  If there is one the systems reads the boot sector into memory and begins executing the code in it.  If the diskette has an operating system on it the boot sector will contain a program that will begin loading the operation system.


File Allocation Table (FAT)

The File Allocation Table (FAT) contains one entry for each logical cluster on a diskette.  (A logical cluster on a diskette contains either one or two sectors depending on the diskette type.)  A file's entry in the directory will contain a pointer to the first cluster of the file.  The corresponding entry in the FAT will contain a pointer to the next cluster of the file.  The FAT entry for the last cluster of the file will contain hex FFs to indicate that there aren't any more.  An entry in the FAT for an unallocated cluster will contain binary zeros.


Directory

A Directory contains the names of files, their attributes, and their starting locations.  The root directory immediately follows the last copy of the File Allocation Table (FAT).  Subdirectories are actual files in directory format.


Diskette Drive

A diskette drive is the device that the floppy diskette is placed into to read or write.  It can be internal to the computer case or in a standalone case.  The normal sizes for IBM compatible drives are 3 1/2 inches wide and 5 1/4 inches wide.  Each drive has two read/write heads one of which is positioned on each side of the floppy diskette.


Menu Item Enable

A menu item is enabled if it respond to it's selection by generating a message to the application.  Menu items that are enabled are dark in color.


Menu Item Disable

A menu item is disabled if it does not respond to it's selection by generating a message to the application.  Menu items that are disabled appear gray.


Diskette Memory Image

If the user has not forced disk spooling of the diskette image and there is sufficient memory available the sectors read from the diskette will be stored in memory buffers.  Each buffer will contain the contents of one track .  The memory is obtained from Windows' global memory pool and must be locked before each use and unlocked after each use.


Diskette Hard Disk Image

If the user has forced hard disk spooling of the diskette image or there is insufficient memory available the system will store the sectors read from the floppy disk in a temporary field on the hard disk.  The file will be created in the directory pointed to by the TEMP= environment variable.


Disk Spooling

If the user has forced hard disk spooling of the diskette image or there is insufficient memory available the system will store the sectors read from the floppy disk in a temporary field on the hard disk.  The file will be created in the directory pointed to by the TEMP= environment variable.


INI Files

An INI file is a file used by a Windows' application to store data between executions.  It can be accessed using the ReadPrivateProfileString and WritePrivateProfileString functions.  The file would normally be created in the Windows directory.


Format Mode

The format mode is the mode in which a diskette will be formatted.

For 3 1/2 inch diskettes it is either High Density (1.44 MB in 2880 sectors) or Dual Density (720 KB in 1440 sectors).

For 5 1/4 inch diskettes it is either High Density (1.2 MB in 2400 sectors) or Dual Density (640 KB in 1280 sectors).


Windows Keys

The keyboard topics below come from Help for Windows.  Choose from the following list to review the keys used in Windows:

Cursor Movement Keys

Dialog Box Keys

Editing Keys

Help Keys

Menu Keys

System Keys

Text Selection Keys

Window Keys


Cursor Movement Keys

Key(s)	Function

DIRECTION key	Moves the cursor left, right, up, or down in a field.

End or Ctrl+Right Arrow	Moves to the end of a field.

Home or CTRL+Left Arrow	Moves to the beginning of a field.

PAGE UP or PAGE DOWN	Moves up or down in a field, one screen at a time.


Dialog Box Keys

Key(s)	Function

TAB	Moves from field to field (left to right and top to bottom).

SHIFT+TAB	Moves from field to field in reverse order.

ALT+letter	Moves to the option or group whose underlined letter matches the one you type.

DIRECTION key	Moves from option to option within a group of options.

ENTER	Executes a command button.

Or, chooses the selected item in a list box and executes the command.

ESC	Closes a dialog box without completing the command. (Same as Cancel)

ALT+DOWN ARROW	Opens a drop-down list box.

ALT+UP or DOWN ARROW	Selects item in a drop-down list box.

SPACEBAR	Cancels a selection in a list box.

Selects or clears a check box.

CTRL+SLASH	Selects all the items in a list box.

CTRL+BACKSLASH	Cancels all selections except the current selection.

SHIFT+ DIRECTION key	Extends selection in a text box.

SHIFT+ HOME	Extends selection to first character in a text box.

SHIFT+ END	Extends selection to last character in a text box


Editing Keys

Key(s)	Function

Backspace	Deletes the character to the left of the cursor.

Or, deletes selected text.

Delete	Deletes the character to the right of the cursor.

Or, deletes selected text.


Help Keys

Key(s)	Function

F1	Gets Help and displays the Help Index for the application. If the Help window is already open, pressing F1 displays the "Using Windows Help" topics.

In some Windows applications, pressing F1 displays a Help topic on the selected command, dialog box option, or system message.

SHIFT+F1	Changes the pointer to [image] so you can get Help on a specific command, screen region, or key. You can then choose a command, click the screen region, or press a key or key combination you want to know more about.

(This feature is not available in all Windows applications.)


Menu Keys

Key(s)	Function

Alt	Selects the first menu on the menu bar.

Letter key	Chooses the menu, or menu item, whose underlined letter matches the one you type.

Alt+letter key	Pulls down the menu whose underlined letter matches the one you type.

LEFT or RIGHT ARROW	Moves among menus.

UP or DOWN ARROW	Moves among menu items.

Enter	Chooses the selected menu item.


System Keys

The following keys can be used from any window, regardless of the application you are using.

Key(s)	Function

Ctrl+Esc	Switches to the Task List.

Alt+Esc	Switches to the next application window or minimized icon, including full-screen programs.

Alt+TAB	Switches to the next application window, restoring applications that are running as icons.

Alt+PrtSc	Copies the entire screen to Clipboard.

Ctrl+F4	Closes the active window.

F1	Gets Help and displays the Help Index for the application. (See Help Keys)


Text Selection Keys

Key(s)	Function

SHIFT+LEFT or RIGHT ARROW	Selects text one character at a time to the left or right.

SHIFT+DOWN or UP	Selects one line of text up or down.

SHIFT+END	Selects text to the end of the line.

SHIFT+HOME	Selects text to the beginning of the line.

SHIFT+PAGE DOWN	Selects text down one window.

Or, cancels the selection if the next window is already selected.

SHIFT+PAGE UP	Selects text up one window.

Or, cancels the selection if the previous window is already selected.

CTRL+SHIFT+LEFT or RIGHT ARROW	Selects text to the next or previous word.

CTRL+SHIFT+UP or DOWN ARROW	Selects text to the beginning (UP ARROW) or end (DOWN ARROW) of the paragraph.

CTRL+SHIFT+END	Selects text to the end of the document.

CTRL+SHIFT+HOME	Selects text to the beginning of the document.


Window Keys

Key(s)	Function

ALT+SPACEBAR	Opens the Control menu for an application window.

ALT+Hyphen	Opens the Control menu for a document window.

Alt+F4	Closes a window.

Alt+Esc	Switches to the next application window or minimized icon, including full-screen programs.

Alt+TAB	Switches to the next application window, restoring applications that are running as icons.

Alt+ENTER	Switches a non-Windows application between running in a window and running full screen.

DIRECTION key	Moves a window when you have chosen Move from the Control menu.

Or, changes the size of a window when you have chosen Size from the Control menu.


Maximize Icon

Selecting the Maximize Icon by "clicking" on it with the mouse will expand the current application window to fill the entire screen.


Minimize Icon

Selecting the Minimize Icon by "clicking" on it with the mouse will reduce the current application window to an Icon.


Sizing Border

The sizing border can be used to change the dimensions of the application's window.  The border can be "grabbed" by positioning the mouse icon over it and holding down the left button.  Moving the mouse will move the location of that portion of the border under the mouse.  The portion of the borer moved can be the top,right side, left side, or bottom of the Window.  It is also possible to change the locations of two adjacent sections of the border by "grabbing" a corner and moving it.  Releasing the left button will cause the application's window to shrink or grow to fill the new border.


System Menu

Selecting the system menu by "clicking" on it with the mouse will display a pop-up menu with the system choices.  The system menu can also be activated by pressing the Alt key followed by the space bar.  The system menu usually includes options for moving, resizing, and closing the application window.  Other choices may be add by the application.


Title Bar

The title bar usually displays the name of the application and some additional information related to the current state of the application.  It can be used to move the application's window by positioning the mouse anywhere in it and pressing and holding down the left button.  Moving the mouse will move the application's window.  Releasing the left button will cause the application's window to occupy the new location.  The title bar can also be used to maximize/restore the application's window size by "double clicking" on it..


Size Box

The size box is used to change the size of the application's window.