








                                   Fox2LIB






















                            By Sparkle Software

                 A collection of commands for FoxPro 2.0





 

Fox2LIB Version 1.0           Copyright (C) Sparkle Software 1990
All Rights Reserved.
Fox2LIB is a trademark of Sparkle Software.
FoxPro 2.0 is a registered trademark of Fox Holdings, Inc.








DEFINITION OF 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.  

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.

DISCLAIMER - AGREEMENT

SPARKLE SOFTWARE PROVIDES Fox2LIB "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE OR MERCHANTABILITY AND SPARKLE SOFTWARE SHALL NOT BE
LIABLE FOR ANY TORT, INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES SUCH AS LOSS
OF PROFITS, LOSS OF GOODWILL, OR LOSS OF PRODUCTIVITY FROM THE USE OR
INABILITY TO USE THE SOFTWARE FOR ANY PURPOSE.

SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO THIS LANGUAGE
MAY NOT APPLY TO YOU.  IN SUCH CASE, SPARKLE SOFTWARE LIABILITIES SHALL BE
LIMITED TO A REFUND OF THE PRODUCT'S PURCHASE PRICE.

Fox2LIB is a "shareware program" and is provided at no charge to the user for
EVALUATION.  Feel free to share it with your friends, but please do not give
it away altered or as part of another system.  The essence of
"user-supported" software is to provide personal computer users with quality
software without high prices, and yet to provide incentive for programmers to
continue to develop new products.  If you find this program useful and find
that you are using Fox2LIB and continue to use Fox2LIB after 15 days, you
must make a registration payment of $45 (U.S. orders only, international
orders are $65) to Sparkle Software.  The $45 registration fee will license
one copy for use on any one computer at any one time.  You must treat this
software just like a book.  An example is that this software may be used by
any number of people and may be freely moved from one computer location to
another, so long as there is no possibility of it being used at one location
while it's being used at another. Just as a book cannot be read by two
different persons at the same time.



Commercial users of Fox2LIB must register and pay for their copies of Fox2LIB
within 15 days of first use or their license is withdrawn.  Site-License
arrangements may be made by contacting Sparkle Software.

Anyone distributing Fox2LIB for any kind of remuneration must first contact
Sparkle Software for authorization.  

You are encouraged to pass a copy of Fox2LIB along to your friends for
evaluation.  Please encourage them to register their copy if they find that
they can use it.

ALL REGISTERED USERS WILL RECEIVE ASSEMBLY LANGUAGE SOURCE CODE FOR ALL
Fox2LIB COMMANDS AND A PRINTED MANUAL.

When you register Fox2LIB, you may not publish the source code in any form. 
No amount of modification and/or rewrite of my source code will allow the
consideration of the resultant source code to be your property.

This is the only agreement between you and Sparkle Software.  It cannot and
shall not be modified unless in writing and signed both by you and an
authorized officer of Sparkle Software.

































Fox2LIB is a trademark of Sparkle Software.
Microsoft, Microsoft Macro Assembler, and MS-DOS are registered trademarks of
Microsoft Corporation.
IBM and PS/2 are registered trademarks of International Business Machines
Corporation.
FoxPro 2.0 is a registered trademark of Fox Holdings, Inc.
Intel is a registered trademark of Intel Corporation.
CompuServe is a registered trademark of CompuServe Incorporated.














































Acknowledgements:

Software Development
Mike Fieldman

Documentation
Mike Fieldman

I would like to say "Praise the Lord" for version 1.0 being completed. 
Special thanks go to my very lovely wife Nancy, Dr. Larry Stokes for giving
me my first exposure to personal computers, Fox Software, and of course,
Sparky.










































                       TABLE OF CONTENTS

***** Make sure you read the "README.1ST" file before using Fox2LIB *****

INTRODUCTION ........................................ Page 8
HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS ... Page 9
INSTALLING Fox2LIB .................................. Page 10
REGISTRATION & SOFTWARE SUPPORT ..................... Pages 11-12
USING Fox2LIB ....................................... Pages 13-14
IMPORTANT! .......................................... Page 15

DOS COMMANDS:
CREATE SUBDIRECTORY ................................. Page 17
DOS VERSION ......................................... Page 18
DRIVE READY ......................................... Page 19
GET CURRENT DRIVE ................................... Page 20
GET FILE ATTRIBUTE .................................. Page 21
GET VERIFY FLAG ..................................... Page 22
REMOVE SUBDIRECTORY ................................. Page 23
SET DIRECTORY ....................................... Page 24
SET DRIVE ........................................... Page 25
SET FILE ATTRIBUTE .................................. Page 26
SET VERIFY FLAG ..................................... Page 27

EQUIPMENT COMMANDS:
BIOS DATE ........................................... Page 29
CONVENTIONAL MEMORY ................................. Page 30
EXTENDED MEMORY ..................................... Page 31
GAME ADAPTER ........................................ Page 32
MICRO CHANNEL ARCHITECTURE .......................... Page 33
NUMBER OF INSTALLED DRIVES .......................... Page 34
PC BUS .............................................. Page 35
PC TYPE PC .......................................... Page 36
PC TYPE XT .......................................... Page 37
PC TYPE AT .......................................... Page 38
PC TYPE PCjr ........................................ Page 39
PC TYPE PC/XT 286 ................................... Page 40
PC TYPE PC CONVERTIBLE .............................. Page 41
PC TYPE PS/2 MODEL 30 ............................... Page 42
PC TYPE PS/2 MODEL 50 ............................... Page 43
PC TYPE PS/2 MODEL 55 ............................... Page 44
PC TYPE PS/2 MODEL 60 ............................... Page 45
PC TYPE PS/2 MODEL 70 ............................... Page 46
PC TYPE PS/2 MODEL 80 ............................... Page 47
PARALLEL PORT ....................................... Page 48
REAL-TIME CLOCK ..................................... Page 49
SERIAL PORT ......................................... Page 50







                      TABLE OF CONTENTS
 
KEYBOARD COMMANDS:
LEFT SHIFT KEY STATUS ............................... Page 52
RIGHT SHIFT KEY STATUS .............................. Page 53
SCROLL LOCK KEY STATUS .............................. Page 54
SET SCROLL LOCK KEY OFF ............................. Page 55
SET SCROLL LOCK KEY ON .............................. Page 56

COMMUNICATION COMMANDS:
INITIALIZE COMMUNICATIONS LINE AT 300 BAUD .......... Page 58
INITIALIZE COMMUNICATIONS LINE AT 1200 BAUD ......... Page 59
INITIALIZE COMMUNICATIONS LINE AT 2400 BAUD ......... Page 60
INITIALIZE COMMUNICATIONS LINE AT 4800 BAUD ......... Page 61
INITIALIZE COMMUNICATIONS LINE AT 9600 BAUD ......... Page 62
COM PORT STATUS ..................................... Page 63
COMMUNICATIONS PORT DATA READY STATUS ............... Page 64
COMMUNICATIONS PORT OVERRUN ERROR STATUS ............ Page 65
COMMUNICATIONS PORT PARITY ERROR STATUS ............. Page 66
COMMUNICATIONS PORT FRAMING ERROR STATUS ............ Page 67
COMMUNICATIONS PORT BREAK INTERRUPT STATUS .......... Page 68
COMMUNICATIONS PORT THR STATUS ...................... Page 69
COMMUNICATIONS PORT TSR STATUS ...................... Page 70
COMMUNICATIONS PORT TIME-OUT ERROR STATUS ........... Page 71
INITIALIZE LINE PRINTER ............................. Page 72
MODEM DELTA CLEAR TO SEND STATUS..................... Page 73
MODEM DELTA DATA SET READY STATUS ................... Page 74
MODEM TRAILING EDGE RING DETECTOR STATUS ............ Page 75
MODEM DELTA RECEIVE LINE SIGNAL DETECT STATUS ....... Page 76
MODEM CLEAR TO SEND STATUS .......................... Page 77
MODEM DATA SET READY STATUS ......................... Page 78
MODEM RING INDICATOR STATUS ......................... Page 79
MODEM RECEIVE LINE SIGNAL DETECT STATUS ............. Page 80

MISCELLANEOUS COMMANDS:
CDROM DRIVER ........................................ Page 82
CDROM VERSION ....................................... Page 83
DAY OF THE WEEK ..................................... Page 84
MOUSE CENTER BUTTON STATUS .......................... Page 85
MOUSE DRIVER ........................................ Page 86
MOUSE HIDE POINTER .................................. Page 87
MOUSE LEFT BUTTON STATUS ............................ Page 88
MOUSE LANGUAGE ...................................... Page 89
MOUSE RIGHT BUTTON STATUS ........................... Page 90
MOUSE SHOW POINTER .................................. Page 91
MOUSE TYPE .......................................... Page 92
MOUSE VERSION ....................................... Page 93
NUMBER OR CHARACTER ................................. Page 94
PRINT SCREEN ........................................ Page 95
XMS DRIVER .......................................... Page 96

INDEX ............................................... Page 97-98


                                INTRODUCTION

Fox2LIB is a command library that will allow you to perform low level
commands from the FoxPro 2.0 command window and from within your favorite
FoxPro 2.0 programs.  

You may already have noticed that the examples in this manual are from the
FoxPro 2.0 command window.  I did this to show you how easy the Fox2LIB
commands are to use.  If you are a beginner to FoxPro 2.0 , performing
Fox2LIB commands from the Foxpro command window will be easier to grasp.  The
intermediate and advanced FoxPro 2.0 users can use all of the Fox2LIB
commands in their programs.

The Fox2LIB commands will become very useful to the FoxPro 2.0 user for the
following reasons:

(1) When executing DOS commands from the FoxPro 2.0 command window, the
FoxPro 2.0 RUN command requires additional memory than Fox2LIB since it has
to load another DOS command.com file into memory.  If the computer you or
your client is using does not have sufficient memory for the RUN command
(this could be due to your application or the amount of memory installed on
the computer), you will receive the dreaded "Insufficient memory" error
message on your computer screen, and you will not be able to execute your DOS
command.

(2) The Fox2LIB commands are written in assembly language - the computer's
language.  Thus they are very fast, much faster than the RUN command, and
take very little memory.  As little as 20 bytes!

(3) Most of the Fox2LIB commands (e.g. nodrives, mousedrv, xmsdrv, etc.) are
not accessible from the FoxPro 2.0 RUN command.























               HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS

In order to use Fox2LIB, you must have an IBM PC or 100% compatible, 640k of
RAM, a 3.5" or 5.25" diskette drive, hard disk, FoxPro 2.0, and MS-DOS
version 3.1 or higher (some of the Fox2LIB commands will work with DOS
version 2.1.  When Microsoft enhanced MS-DOS in later versions, e.g.
Microsoft CD-ROM extensions, Fox2LIB requires MS-DOS 3.1 or greater).

The Fox2LIB software package includes the following three items:

Command library that includes the binary files (e.g. cursor.bin) to be loaded
and called into your FoxPro 2.0 applications.

ASCII manual.

Registration form.






































                           INSTALLING Fox2LIB 

To install Fox2LIB on your hard disk, perform the following steps:

1.  Create a subdirectory on your hard disk with the name Fox2LIB.

For example, we'll assume you'll be creating a subdirectory on drive C on
your hard disk.  Type the following ->

MD FOX2LIB

and press the return key.

2.  Place the Fox2LIB diskette into your floppy diskette drive, and then type
the letter of the drive where you just placed the Fox2LIB diskette.

For example, if you placed the Fox2LIB diskette into drive A, type the
following ->

A:

and press the return key.

3.  Copy all of the Fox2LIB command files from drive A into the Fox2LIB
subdirectory.

For example, type the following ->

cd\bin

copy *.bin c:\Fox2LIB

and press the return key.

That's all there is to installing Fox2LIB on your hard disk.

Please refer to your MS-DOS manual for questions using the CD, MD, and COPY
commands.
















                    REGISTRATION & SOFTWARE SUPPORT

PLEASE REGISTER YOUR SOFTWARE IMMEDIATELY BY COMPLETING THE
REGISTRATION FORM ON THE NEXT PAGE.  OTHERWISE, YOU WILL NOT
RECEIVE TELEPHONE SOFTWARE SUPPORT FOR Fox2LIB.  BY REGISTRATING 
YOUR SOFTWARE, YOU WILL RECEIVE THE ASSEMBLY LANGUAGE SOURCE
CODE FOR ALL Fox2LIB COMMANDS AND A PRINTED MANUAL.

Once your registration card has been received, you will receive 30
days free (you do pay for the phone call) software support, and my
telephone number.  During the 30 days of free software support, you
must leave a phone number where I can contact you collect.

After the 30 days have expired, you can purchase telephone software
support.  Please contact me for current rates.  I look forward to
answering any questions you may have using Fox2LIB.  Please understand
that I cannot answer questions concerning how to program in FoxPro 2.0 or
assembly language.  There are plenty of good programming books that
can be purchased.

Finally, please send the registration form along with a check for
$45 (U.S. orders only, international orders are $65) when the 10 day trial
period expires.  If you use any of the Fox2LIB commands commercially (e.g.
consulting, software development, software testing, etc.) you must register
Fox2LIB immediately.





























Mail check for $45 To:             Sparkle Software
                                   Mike Fieldman
                                   610 E. Bell Rd.
                                   Suite #2136
                                   Phoenix, AZ 85022

(International orders are $65)

Company:____________________________________________
Name:_______________________________________________
First Name:__________________ Last Name:____________________
Street Address:_____________________________________________
               _____________________________________________
City:___________________ State:__ Zip Code:_________________
Day time phone number:________________________
Evening phone number:_________________________
Fox2LIB version:___





































                        Using Fox2LIB in your applications

You can execute the Fox2LIB commands from the FoxPro 2.0 command window and
from within your FoxPro 2.0 programs.  This is a summary for using the
Fox2LIB commands included on the Fox2LIB diskette.  Please refer to each
individual command located in this manual for specific information.

In order to use Fox2LIB, you must have FoxPro 2.0 loaded in memory. 

I will use the NODRIVES Fox2LIB command for an example.  If you wanted to
determine the number of logical drives installed on an IBM PC, you would
perform the following steps from the dot prompt or FoxPro command window:

. load c:\Fox2LIB\nodrives
. Fox2LIB = "NODRIVES"
. call nodrives with Fox2LIB
. ?asc(substr(Fox2LIB,1,1))
6
. release module nodrives

there are six drives installed on this computer system (drives A, B, C, D, E,
and F).  Let's examine each dot prompt command in detail.

(1) We loaded the command NODRIVES.bin into memory.  Notice you do not use
the extension (.bin) of the file you are loading.

(2) We created a parameter, NODRIVES, that we will be sending to the NODRIVES
command.  ONLY SEND THE PARAMETER SPECIFIED IN EACH Fox2LIB COMMAND, I.E. DO
NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH Fox2LIB
COMMAND.

(3) We called the NODRIVES command with the parameter "NODRIVES" (You can
pass character parameters to Fox2LIB in either lower or upper case).  

(4) We determined the number of installed drives by converting the result to
an ASCII code. 

(5) Finally, we released the command nodrives.bin from memory.  AFTER YOU
LOAD AND CALL THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.

When a Fox2LIB command returns a value, you may have to convert the value to
an ASCII code using just two FOX functions - SUBSTR and ASC.  The SUBSTR and
ASC functions are included with your FoxPro 2.0 product.

The SUBSTR function returns a specified number of characters from a string. 
For example, the string that was passed to the NODRIVES command was
"NODRIVES."  Since the NODRIVES command returns the value (number of
installed drives) in the first letter of the string "NODRIVES" (in this case
the letter N of NODRIVES), all we have to do is obtain the value of the first
letter of the string.




                    Using Fox2LIB in your applications (Cont.)


. load nodrives
. Fox2LIB = "NODRIVES"
. call nodrives with Fox2LIB
. ?substr(Fox2LIB,1,1)
. HERE YOU WOULD SEE THE ASCII CODE "SPADE" SYMBOL

We will convert the ASCII code "SPADE" symbol to a number to determine the
number of installed drives.  We'll do this using the ASC function.

. ?asc(substr(Fox2LIB,1,1))
6
. release module nodrives

If this seems complicated - DON'T WORRY!  Just follow the instructions for
each command and you'll do just fine.  Please refer to your FoxPro 2.0 manual
for questions using the SUBSTR and ASC functions.



































                                  IMPORTANT!

1.  MAKE SURE YOU RELEASE A Fox2LIB COMMAND FROM MEMORY USING THE FoxPro 2.0
"RELEASE MODULE" COMMAND AFTER YOU HAVE LOADED AND CALLED IT.  THIS WILL FREE
UP MEMORY AND YOU WON'T EXCEED THE MAXIMUM NUMBER OF ALLOWED LOADS IMPOSED BY
FOX.

Example:                       . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                    > . rele modu mousedrv

2.  NEVER SEND A PARAMETER OTHER THAN WHAT IS SPECIFIED IN THE Fox2LIB
COMMAND.  OTHERWISE, YOU COULD GET UNWANTED AND UNPREDICTABLE RESULTS.  BELOW
IS THE INCORRECT WAY TO PASS THE PARAMETER "MOUSE" USING THE MOUSE DRIVER
Fox2LIB COMMAND.

Example:                       . load c:\Fox2LIB\mousedrv
                    > . Fox2LIB = "MICKEYMOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

Below is the CORRECT way to pass the parameter "MOUSE" using the mouse driver
Fox2LIB command.

Example:                       . load c:\Fox2LIB\mousedrv
                    > . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

Please refer to your FoxPro 2.0 manual for questions using the LOAD, CALL,
and RELEASE MODULE commands.

3.  MAKE SURE YOU USE ONLY A COPY OF YOUR DATA AND PROGRAMS WHEN USING
    ANY OR ALL OF THE Fox2LIB COMMANDS.
























                                     DOS COMMANDS








































                                        CREATDIR


Syntax:                        CREATDIR

Use:                           To create a subdirectory.

Parameters:                    The directory you want to create (e.g. C:\BACKUP).

Returns:                       The first character in the sending parameter will
                               have a "Y" (i.e. true) if the subdirectory was
                               created, and a "N" if the subdirectory could not be
                               created (e.g. if it already exists).  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "\backup"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\creatdir
                               . Fox2LIB = "C:\BACKUP"
                               . call creatdir with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu creatdir

                               From this example, the subdirectory C:\BACKUP was
                               created.

Example:                       if substr(Fox2LIB,1,1) = "Y"
                                  copy to c:\backup\filecopy
                               endif

                               From the above example, you could save information
                               to a backup subdirectory for archives.


See:                           REMOVDIR, SETDIR


















                                        DOSVERS


Syntax:                        DOSVERS

Use:                           To determine the DOS version.

Parameters:                    DOS

Returns:                       The first character in the sending parameter will
                               have the DOS major version number, and the second
                               character in the sending parameter will have the DOS
                               minor version number.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOS"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\dosvers
                               . Fox2LIB = "DOS"
                               . call dosvers with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               3
                               . ?asc(substr(Fox2LIB,2,1))
                               30
                               . rele modu dosvers

                               From this example, the DOS version is 3.30.  Your
                               application may require a certain DOS version, i.e.
                               3.30 or higher.

Example:                       load dosvers
                               Fox2LIB = "DOS"
                               call dosvers with Fox2LIB
                               IF asc(substr(Fox2LIB,1,1)) < 3
                                  @ 3,0 Say "Application requires DOS 3.3 or"
                                  @ 4,0 Say "greater.  Press any key to exit."
                                  Wait ""
                                  return
                               Endif
                               IF asc(substr(Fox2LIB,1,1)) = 3 .and.
                               asc(substr(Fox2LIB,2,1)) < 30
                                  @ 3,0 Say "Application requires DOS 3.3 or"
                                  @ 4,0 Say "greater.  Press any key to exit."
                                  Wait ""
                                  return
                               Endif

                               If your application needs more than 20 file handles
                               open at one time, make sure the DOS version is
                               greater than or equal to 3.30.





                                        DRIVERDY


Syntax:                        DRIVERDY

Use:                           To see if floppy disk drive A or B is ready.

Parameters:                    Drive letter (A or B).

Returns:                       The first character in the sending parameter will
                               have a "Y" if the floppy drive is ready, a "N" if
                               the floppy drive is not ready.  If you did not pass
                               the parameter correctly (e.g. Fox2LIB = "/"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\driverdy
                               . Fox2LIB = "B"
                               . call driverdy with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu driverdy
                               
                               From this example, drive B is ready for retrieval 
                               or saving of data.

See:                           FIXEDRRV, GETDRIVE, AND SETDRIVE




























                                        GETDRIVE


Syntax:                        GETDRIVE

Use:                           To determine the current drive.

Parameters:                    GETDRIVE

Returns:                       The first character in the sending parameter will
                               have the current drive letter (A, B, C, etc.).  If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZETDRIVE"), your sending parameter will
                               be unchanged.

Example:                       . load c:\Fox2LIB\getdrive
                               . Fox2LIB = "GETDRIVE"
                               . call getdrive with Fox2LIB
                               . ?substr(Fox2LIB,1,1)
                               C
                               . rele modu getdrive
                               
                               From this example, the current drive is C. 

See:                           SETDRIVE





























                                        GETATTR


Syntax:                        GETATTR

Use:                           To determine the file attribute.

Parameters:                    The subdirectory and the file name (e.g.
                               \FOXPRO\FOXPROLN.EXE).  Do not include the drive
                               letter and the colon, but you must include the
                               backslash "\".

Returns:                       The first character in the sending parameter will
                               have the file attribute.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "\FOXPRO\"),
                               your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\getattr
                               . Fox2LIB = "\IO.SYS"
                               . call getattr with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               39
                               . rele modu getattr
                               
                               From this example, the file attribute is archive,
                               system, hidden, and read-only.  Below is a list of
                               all possible outcomes:

                               Archive, system, hidden, read-only = 39
                               Archive                            = 32
                               Archive, system                    = 36
                               Archive, system, hidden            = 38
                               Archive, hidden                    = 34
                               Archive, read-only                 = 33
                               System                             = 4
                               System, hidden                     = 6
                               System, read-only                  = 5
                               Hidden                             = 2
                               Hidden, read-only                  = 3
                               Read-only                          = 1

                               No attributes set                  = 0

See:                           SETATTR

Notes:                         You can only obtain the file attribute from the
                               current drive.  For example, you are in drive C, and
                               you want to obtain the file attribute for a file on
                               drive D.  Use the SETDRIVE command to set the
                               current drive to D, and then use the GETATTR
                               command.



                                        GETVERFY


Syntax:                        GETVERFY

Use:                           To determine if the verify flag is on or off.

Parameters:                    GETVERIFY

Returns:                       The first character in the sending parameter will
                               have a "Y" if verify is on, a "N" if verify is off. 
                               If you did not pass the parameter correctly
                               (e.g. Fox2LIB = "ZETVERIFY"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\getverfy
                               . Fox2LIB = "GETVERIFY"
                               . call getverfy with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu getverfy
                               
                               From this example, verify is on.  Having verify
                               on can dramatically slow down your FOX
                               application since DOS performs a verify operation
                               after each disk write to ensure that the data has
                               been recorded correctly.

See:                           SETVERFY

























                                        REMOVDIR


Syntax:                        REMOVDIR

Use:                           To remove a subdirectory.

Parameters:                    The directory you want to remove (e.g. C:\BACKUP).

Returns:                       The first character in the sending parameter will
                               have a "Y" (i.e. true) if the subdirectory was
                               removed, and a "N" if the subdirectory could not be
                               removed (e.g. if it already was removed). If you did
                               not pass the parameter correctly (e.g. Fox2LIB =
                               "\backup"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\removdir
                               . Fox2LIB = "C:\BACKUP"
                               . call removdir with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu removdir

                               From this example, the subdirectory C:\BACKUP was
                               removed.

See:                           CREATDIR, SETDIR


























                                        SETDIR


Syntax:                        SETDIR

Use:                           To set a subdirectory.

Parameters:                    The directory you want to set (e.g. C:\BACKUP).

Returns:                       The first character in the sending parameter will
                               have a "Y" (i.e. true) if the subdirectory was set,
                               and a "N" if the subdirectory was not set. If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "\backup"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\setdir
                               . Fox2LIB = "C:\BACKUP"
                               . call setdir with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu setdir

                               From this example, the subdirectory was set to
                               c"\backup."

Example:                       if substr(Fox2LIB,1,1) = "Y"
                                  copy to c:\backup\filecopy
                               endif

                               From the above example, you could first verify that
                               a subdirectory exists.  If it does, you could then
                               copy information to it.

Notes:                         Please note that when you use the SETDIR Fox2LIB
                               command, you will make that subdirectory the current
                               subdirectory.
 
See:                           CREATDIR, REMOVDIR















                                        SETDRIVE


Syntax:                        SETDRIVE

Use:                           To set a disk drive.

Parameters:                    Drive letter (A=0, B=1, C=2,..., Z=25).

Returns:                       The first character in the sending parameter will
                               have a "Y" if the drive number was set, a "N" if the
                               drive number was not set.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "/"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\setdrive
                               . Fox2LIB = "B"
                               . call setdrive with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu setdrive
                               
                               From this example, the drive was set to B. 

See:                           GETDRIVE





























                                        SETATTR

Syntax:                        SETATTR

Use:                           To set the file attribute.

Parameters:                    The subdirectory, the file name, and the file
                               attribute (e.g. \FOXPRO\FOXPROLN.EXE,!).  You do not
                               include the drive letter, but you mus 0' 
*e
                               backslash "\".

Returns:                       The first character in the sending parameter will
                               have a "Y" if the file attribute was set, a "N" if
                               the file attribute was not set.  If you did not pass
                               the parameter correctly (e.g. Fox2LIB =
                               "\FOXPRO\"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\setattr
                               . Fox2LIB = "\FOXPRO\MIKE.TXT,!"
                               . call setattr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu setattr
                               
                               From this example, the file attribute was set to
                               archive and read-only.  Below is a list of
                               parameters to use in setting file attributes.

                               Archive, system, hidden, read-only = '
                               Archive, system, hidden            = &
                               Archive, system                    = $            
                               Archive, read-only                 = !
                               Archive, hidden                    = #
                               Archive                            = space        
                               System, hidden                     = 6
                               System, read-only                  = 5
                               System                             = 4
                               Hidden, read-only                  = 3            
                               Hidden                             = 2
                               Read-only                          = 1

                               When setting just the archive file attribute, use 
                               a space.  For example: 
                               . Fox2LIB = "\FOXPRO\MIKE.TXT, "

See:                           GETATTR

Notes:                         You can only set the file attribute from the current
                               drive.  For example, you are in drive C, and you
                               want to set the file attribute for a file on drive
                               D.  Use the SETDRIVE command to set the current
                               drive to D, and then use the SETATTR command.
                                        SETVERFY


Syntax:                        SETVERFY

Use:                           To set the verify flag on or off.

Parameters:                    1 or 0.  1 to set on, 0 to set off.

Returns:                       The first character in the sending parameter will
                               have a "Y" if verify was set on, a "Y" if verify was
                               set off.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "Z"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\setverfy
                               . Fox2LIB = "0"
                               . call setverfy with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu setverfy
                               
                               From this example, verify was successfully set to
                               off.

See:                           GETVERFY








































                                   EQUIPMENT COMMANDS









































                                        BIOSDATE


Syntax:                        BIOSDATE

Use:                           To determine the date of the ROM BIOS.

Parameters:                    BIOSDATE

Returns:                       The first eight characters in the Fox2LIB parameter
                               will have the date of the ROM BIOS.  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =      
                                                     
                               "ZIOSDATE"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\biosdate
                               . Fox2LIB = "BIOSDATE"
                               . call biosdate with Fox2LIB
                               . ?Fox2LIB
                               06/26/89
                               . rele modu biosdate
                                                                
                               From this example, the date of the ROM BIOS is
                               June 26, 1989.





























                                        CONVMEM


Syntax:                        CONVMEM

Use:                           To determine the amount of installed conventional
                               memory.

Parameters:                    CONV

Returns:                       The first three characters in the sending parameter
                               will have the amount of conventional memory       
                                                      
                               installed on the computer system.  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "ZONV"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\convmem
                               . Fox2LIB = "CONV"
                               . call convmem with Fox2LIB
                               . ?substr(Fox2LIB,1,3)
                               640
                               . rele modu convmem

                               From this example, there is 640K of conventional
                               memory installed on the computer system.

Example:                       if val(substr(Fox2LIB,1,3) <> 640
                                  @ 1,0 Say "Error!  Need 640K of conventional"
                                  @ 2,0 Say "memory to load application." 
                                  @ 3,0 Say "program."
                               endif

                               If your application requires 640K of conventional
                               memory, first determine the amount of installed
                               conventional memory before loading your program.

See:                           EXTMEM
















                                        EXTMEM


Syntax:                        EXTMEM

Use:                           To determine the amount of extended memory.

Parameters:                    EXTMEM

Returns:                       The first five characters in the sending parameter
                               will have the amount of extended memory installed 
                               on the computer system.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZXTMEM"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\extmem
                               . Fox2LIB = "EXTMEM"
                               . call extmem with Fox2LIB
                               . ?RTRIM(Fox2LIB)
                               3072
                               . rele modu extmem

                               From this example, there is 3072K of extended
                               memory installed on the computer system.  Notice the
                               FOX function RTRIM being used here to remove any
                               trailing spaces.

See:                           CONVMEM


























                                        GAMEADAP


Syntax:                        GAMEADAP

Use:                           To determine if a game adapter is installed.

Parameters:                    GAME

Returns:                       The first character in the sending parameter will
                               have a "Y" if a game adapter is installed, a "N" if
                               it does not exist. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZAME"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\gameadap
                               . Fox2LIB = "GAME"
                               . call gameadap with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu gameadap
                               
                               From this example, a game adapter is installed.































                                        MCA


Syntax:                        MCA

Use:                           To determine if Micro Channel Architecture.

Parameters:                    MCA

Returns:                       The first character in the sending parameter will
                               have a "Y" if a Micro Channel Architecture is
                               present, a "N" if it is not present. If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "ZCA"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\mca
                               . Fox2LIB = "MCA"
                               . call mca with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mca
                               
                               From this example, Micro Channel Architecture is
                               present.

See:                           PCBUS




























                                        NODRIVES


Syntax:                        NODRIVES

Use:                           To determine the number of installed disk drives. 

Parameters:                    NODRIVES

Returns:                       The first character in the sending parameter will
                               have the number of disk drives installed.  If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZODRIVES"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\nodrives
                               . Fox2LIB = "NODRIVES"
                               . call nodrives with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               26
                               . rele modu nodrives
                                                                
                               From this example, there are 26 installed disk
                               drives.  These disk drives could be two floppy
                               drives A and B; a hard disk partitioned into
                               three drives C, D, and E; and ram disks (F through
                               Z).



























                                        PCBUS


Syntax:                        PCBUS

Use:                           To determine if PC bus I/O channel.

Parameters:                    PCBUS

Returns:                       The first character in the sending parameter will
                               have a "Y" if a PC bus I/O channel is present, a "N"
                               if it is not present. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZCBUS"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\pcbus
                               . Fox2LIB = "PCBUS"
                               . call pcbus with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcbus
                               
                               From this example, PC bus I/O channel is present.

See:                           MCA

Notes:                         This command will not work on the PC/AT dated before
                               6/10/85.


























                                        PC


Syntax:                        PC

Use:                           To determine if PC.

Parameters:                    PC

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC, a "N" if it is not a PC. If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZC"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\pc
                               . Fox2LIB = "PC"
                               . call pc with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pc
                                                                
                               From this example, it is a true PC.
































                                        PCXT


Syntax:                        PCXT

Use:                           To determine if PC/XT.

Parameters:                    PCXT

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC/XT, a "N" if it is not a PC/XT. If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZCXT"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\pcxt
                               . Fox2LIB = "PCXT"
                               . call pcxt with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcxt
                                                                
                               From this example, it is a PC/XT.































                                        PCAT


Syntax:                        PCAT

Use:                           To determine if PC/AT.

Parameters:                    PCAT

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC/AT, a "N" if it is not a PC/AT. If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZCAT"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\pcat
                               . Fox2LIB = "PCAT"
                               . call pcat with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcat
                                                                
                               From this example, it is a PC/AT.































                                        PCJR


Syntax:                        PCJR

Use:                           To determine if PC/JR.

Parameters:                    PCJR

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC/JR, a "N" if it is not a PC/JR. If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZCJR"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\pcjr
                               . Fox2LIB = "PCJR"
                               . call pcjr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcjr
                                                                
                               From this example, it is a PC jr.































                                        PCXT286


Syntax:                        PCXT286

Use:                           To determine if PC/XT 286.

Parameters:                    PCXT286

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC/XT 286, a "N" if it is not a PC/XT
                               286. If you did not pass the parameter correctly
                               (e.g. Fox2LIB = "ZCXT286"), your sending parameter
                               will be unchanged.

Example:                       . load c:\Fox2LIB\pcxt286
                               . Fox2LIB = "PCXT286"
                               . call pcxt286 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcxt286
                                                                
                               From this example, it is a PC/XT 286.































                                        PCCONV


Syntax:                        PCCONV

Use:                           To determine if PC Convertible.

Parameters:                    PCCONV

Returns:                       The first character in the sending parameter will
                               have a "Y" if PC Convertible, a "N" if it is not a
                               PC Convertible. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZCCONV"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\pcconv
                               . Fox2LIB = "PCCONV"
                               . call pcconv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu pcconv
                                                                
                               From this example, it is a PC Convertible.































                                        PS2M30


Syntax:                        PS2M30

Use:                           To determine if PS/2 Model 30.

Parameters:                    PS2M30

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 30, a "N" if it is not a
                               PS/2 Model 30. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M30"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m30
                               . Fox2LIB = "PS2M30"
                               . call ps2m30 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m30
                                                                
                               From this example, it is a PS/2 Model 30.































                                        PS2M50


Syntax:                        PS2M50

Use:                           To determine if PS/2 Model 50.

Parameters:                    PS2M50

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 50, a "N" if it is not a
                               PS/2 Model 50. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M50"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m50
                               . Fox2LIB = "PS2M50"
                               . call ps2m50 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m50
                                                                
                               From this example, it is a PS/2 Model 50.































                                        PS2M55


Syntax:                        PS2M55

Use:                           To determine if PS/2 Model 55 SX.

Parameters:                    PS2M55

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 55, a "N" if it is not a
                               PS/2 Model 55. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M55"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m55
                               . Fox2LIB = "PS2M55"
                               . call ps2m55 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m55
                                                                
                               From this example, it is a PS/2 Model 55 SX.































                                        PS2M60


Syntax:                        PS2M60

Use:                           To determine if PS/2 Model 60.

Parameters:                    PS2M60

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 60, a "N" if it is not a
                               PS/2 Model 60. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M60"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m60
                               . Fox2LIB = "PS2M60"
                               . call ps2m60 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m60
                                                                
                               From this example, it is a PS/2 Model 60.































                                        PS2M70


Syntax:                        PS2M70

Use:                           To determine if PS/2 Model 70.

Parameters:                    PS2M70

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 70, a "N" if it is not a
                               PS/2 Model 70. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M70"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m70
                               . Fox2LIB = "PS2M70"
                               . call ps2m70 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m70
                                                                
                               From this example, it is a PS/2 Model 70.































                                        PS2M80


Syntax:                        PS2M80

Use:                           To determine if PS/2 Model 80.

Parameters:                    PS2M80

Returns:                       The first character in the sending parameter will
                               have a "Y" if PS/2 Model 80, a "N" if it is not a
                               PS/2 Model 80. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZS2M80"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\ps2m80
                               . Fox2LIB = "PS2M80"
                               . call ps2m80 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu ps2m80
                                                                
                               From this example, it is a PS/2 Model 80.































                                        PARALLEL


Syntax:                        PARALLEL

Use:                           To determine if a parallel port exists.

Parameters:                    PARALLEL

Returns:                       The first character in the sending parameter will
                               have a "Y" if a parallel port exists, and a "N" if
                               a parallel port does not exist.  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "ZARALLEL"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\parallel
                               . Fox2LIB = "PARALLEL"
                               . call parallel with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu parallel
                                                                
                               From this example, a parallel port does exist.






























                                        REALTIME


Syntax:                        REALTIME

Use:                           To determine if a real-time clock is present.

Parameters:                    REALTIME

Returns:                       The first character in the sending parameter will
                               have a "Y" if a real-time clock is present, a "N" 
                               if it is not present. If you did not pass the     
                               parameter correctly (e.g. Fox2LIB = "ZEALTIME"),
your                                 sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\realtime
                               . Fox2LIB = "REALTIME"
                               . call realtime with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu realtime
                               
                               From this example, a real-time clock is present.

Notes:                         This command will not work on the PC/AT dated before
                               6/10/85.




























                                        SERIAL


Syntax:                        SERIAL

Use:                           To determine if a serial port exists.

Parameters:                    SERIAL

Returns:                       The first character in the sending parameter will
                               have a "Y" if a serial port exists, and a "N" if a
                               serial port does not exist.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZERIAL"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\serial
                               . Fox2LIB = "SERIAL"
                               . call serial with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu serial
                                                                
                               From this example, a serial port exists.











































                                     KEYBOARD COMMANDS









































                                        LEFTSHFT


Syntax:                        LEFTSHFT

Use:                           To determine if the Left Shift key is down.

Parameters:                    LEFT

Returns:                       The first character in the sending parameter will
                               have a "Y" if the Left Shift key is down, a "N" if
                               it is not down.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZEFT"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\leftshft
                               . Fox2LIB = "LEFT"
                               . call leftshft with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu leftshft
                               
                               From this example, the Left Shift key is down.

Notes:                         Make sure you re-load leftshft into memory each time
                               you determine if the Left Shift key is down.




























                                        RGHTSHFT


Syntax:                        RGHTSHFT

Use:                           To determine if the Left Shift key is down.

Parameters:                    RIGHT

Returns:                       The first character in the sending parameter will
                               have a "Y" if the Right Shift key is down, a "N" if
                               it is not down.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZIGHT"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\rghtshft
                               . Fox2LIB = "RIGHT"
                               . call rghtshft with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu rghtshft
                               
                               From this example, the Right Shift key is down.

Notes:                         Make sure you re-load rghtshft into memory each time
                               you determine if the Right Shift key is down.




























                                        SCRLSTAT


Syntax:                        SCRLSTAT

Use:                           To determine if the Scroll Lock key is on.

Parameters:                    SCRL

Returns:                       The first character in the sending parameter will
                               have a "Y" if the Scroll Lock key is on, a "N" if 
                               it is off.  If you did not pass the parameter     
                               correctly (e.g. Fox2LIB = "ZCRL"), your sending   
                                parameter will be unchanged.

Example:                       . load c:\Fox2LIB\scrlstat
                               . Fox2LIB = "SCRL"
                               . call scrlstat with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu scrlstat
                               
                               From this example, the Scroll Lock key is on.

Notes:                         Make sure you re-load scrlstat into memory each time
                               you determine if the Scroll Lock key is on or off.




























                                        SCRLOFF


Syntax:                        SCRLOFF

Use:                           To set the Scroll Lock key off.

Parameters:                    SCRL

Returns:                       Nothing is returned.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZCRL"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\scrloff
                               . Fox2LIB = "SCRL"
                               . call scrloff with Fox2LIB
                               . rele modu scrloff
                     
                               From this example, the Scroll Lock key is set off.

Notes:                         Make sure you re-load scrloff into memory each time
                               you set the Scroll Lock key off.
































                                        SCRLON


Syntax:                        SCRLON

Use:                           To set the Scroll Lock key on.

Parameters:                    SCRL

Returns:                       Nothing is returned.  If you did not pass the
                               parameter correctly (e.g. sending = "ZCRL"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\scrlon
                               . Fox2LIB = "SCRL"
                               . call scrlon with Fox2LIB
                               . rele modu scrlon
                     
                               From this example, the Scroll Lock key is set on.

Notes:                         Make sure you re-load scrlon into memory each time
                               you set the Scroll Lock key on.












































                                  COMMUNICATION COMMANDS









































                                        COM300


Syntax:                        COM300

Use:                           To initialize the communications line at 300 baud.

Parameters:                    In order to initialize the communications line, the
                               baud rate, parity, stop bit, and data length
                               parameters have to be set.  Use the table below to
                               initialize the communications lines 1, 2, 3, and 4. 

                               If you wanted to initialize communications line 1 
                               at 300 baud, no parity, 1 stop bit, and 7 data    
                               length, you would choose the letter "A" from the  
                               table below and add a comma and the communications 
                               line to initialize - in this case the number 0.   
                               Remember, that communications line 1 is 0, line 2 
                               is 1, line 3 is 2, and line 4 is 3.  

                               300, no parity, 1 stop bit, 7 data length = A
                               300, no parity, 1 stop bit, 8 data length = B
                               300, no parity, 2 stop bit, 7 data length = C
                               300, no parity, 2 stop bit, 8 data length = D
                               300, odd parity, 1 stop bit, 7 data length = E
                               300, odd parity, 1 stop bit, 8 data length = F
                               300, odd parity, 2 stop bit, 7 data length = G
                               300, odd parity, 2 stop bit, 8 data length = H
                               300, even parity, 1 stop bit, 7 data length = I
                               300, even parity, 1 stop bit, 8 data length = J
                               300, even parity, 2 stop bit, 7 data length = K
                               300, even parity, 2 stop bit, 8 data length = L

Returns:                       Use the Fox2LIB communications status commands
                               (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
                               COMTHR, COMTSR, and COMTOE) to obtain the status of
                               the communications line if the return value is not
                               equal to 1 or 97.  If the return value is not equal
                               to 1 or 97, load and call COM300 again to see if any
                               errors disappear.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "Z,0"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\com300
                               . Fox2LIB = "A,0"
                               . call com300 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "A"
                               .F.
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu com300
                               
First test to see if you passed the parameter correctly.  From this example, the
parameter was passed correctly since the first character is not equal to "A".  
                                        COM1200


Syntax:                        COM1200

Use:                           To initialize the communications line at 1200 baud.

Parameters:                    In order to initialize the communications line, the
                               baud rate, parity, stop bit, and data length
                               parameters have to be set.  Use the table below to
                               initialize the communications lines 1, 2, 3, and 4. 

                               If you wanted to initialize communications line 1 
                               at 1200 baud, no parity, 1 stop bit, and 7 data   
                               length, you would choose the letter "A" from the  
                               table below and add a comma and the communications 
                               line to initialize - in this case the number 0.   
                               Remember, that communications line 1 is 0, line 2 
                               is 1, line 3 is 2, and line 4 is 3.  

                               1200, no parity, 1 stop bit, 7 data length = A
                               1200, no parity, 1 stop bit, 8 data length = B
                               1200, no parity, 2 stop bit, 7 data length = C
                               1200, no parity, 2 stop bit, 8 data length = D
                               1200, odd parity, 1 stop bit, 7 data length = E
                               1200, odd parity, 1 stop bit, 8 data length = F
                               1200, odd parity, 2 stop bit, 7 data length = G
                               1200, odd parity, 2 stop bit, 8 data length = H
                               1200, even parity, 1 stop bit, 7 data length = I
                               1200, even parity, 1 stop bit, 8 data length = J
                               1200, even parity, 2 stop bit, 7 data length = K
                               1200, even parity, 2 stop bit, 8 data length = L

Returns:                       Use the Fox2LIB communications status commands
                               (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
                               COMTHR, COMTSR, and COMTOE) to obtain the status of
                               the communications line if the return value is not
                               equal to 1 or 97.  If the return value is not equal
                               to 1 or 97, load and call COM1200 again to see if
                               any errors disappear.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "Z,0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\com1200
                               . Fox2LIB = "1,0"
                               . call com1200 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "A"
                               .F.
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu com1200
                               
First test to see if you passed the parameter correctly.  From this example, the
parameter was passed correctly since the first character is not equal to "A".  
                                        COM2400


Syntax:                        COM2400

Use:                           To initialize the communications line at 2400 baud.

Parameters:                    In order to initialize the communications line, the
                               baud rate, parity, stop bit, and data length
                               parameters have to be set.  Use the table below to
                               initialize the communications lines 1, 2, 3, and 4. 

                               If you wanted to initialize communications line 1 
                               at 2400 baud, no parity, 1 stop bit, and 7 data   
                               length, you would choose the letter "A" from the  
                               table below and add a comma and the communications 
                               line to initialize - in this case the number 0.   
                               Remember, that communications line 1 is 0, line 2 
                               is 1, line 3 is 2, and line 4 is 3.  

                               2400, no parity, 1 stop bit, 7 data length = A
                               2400, no parity, 1 stop bit, 8 data length = B
                               2400, no parity, 2 stop bit, 7 data length = C
                               2400, no parity, 2 stop bit, 8 data length = D
                               2400, odd parity, 1 stop bit, 7 data length = E
                               2400, odd parity, 1 stop bit, 8 data length = F
                               2400, odd parity, 2 stop bit, 7 data length = G
                               2400, odd parity, 2 stop bit, 8 data length = H
                               2400, even parity, 1 stop bit, 7 data length = I
                               2400, even parity, 1 stop bit, 8 data length = J
                               2400, even parity, 2 stop bit, 7 data length = K
                               2400, even parity, 2 stop bit, 8 data length = L

Returns:                       Use the Fox2LIB communications status commands
                               (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
                               COMTHR, COMTSR, and COMTOE) to obtain the status of
                               the communications line if the return value is not
                               equal to 1 or 97.  If the return value is not equal
                               to 1 or 97, load and call COM2400 again to see if
                               any errors disappear.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "Z,0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\com2400
                               . Fox2LIB = "A,0"
                               . call com2400 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "A"
                               .F.
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu com2400
                               
First test to see if you passed the parameter correctly.  From this example, the
parameter was passed correctly since the first character is not equal to "A".  
                                        COM4800


Syntax:                        COM4800

Use:                           To initialize the communications line at 4800 baud.

Parameters:                    In order to initialize the communications line, the
                               baud rate, parity, stop bit, and data length
                               parameters have to be set.  Use the table below to
                               initialize the communications lines 1, 2, 3, and 4. 

                               If you wanted to initialize communications line 1 
                               at 4800 baud, no parity, 1 stop bit, and 7 data   
                               length, you would choose the letter "A" from the  
                               table below and add a comma and the communications 
                               line to initialize - in this case the number 0.   
                               Remember, that communications line 1 is 0, line 2 
                               is 1, line 3 is 2, and line 4 is 3.  

                               4800, no parity, 1 stop bit, 7 data length = A
                               4800, no parity, 1 stop bit, 8 data length = B
                               4800, no parity, 2 stop bit, 7 data length = C
                               4800, no parity, 2 stop bit, 8 data length = D
                               4800, odd parity, 1 stop bit, 7 data length = E
                               4800, odd parity, 1 stop bit, 8 data length = F
                               4800, odd parity, 2 stop bit, 7 data length = G
                               4800, odd parity, 2 stop bit, 8 data length = H
                               4800, even parity, 1 stop bit, 7 data length = I
                               4800, even parity, 1 stop bit, 8 data length = J
                               4800, even parity, 2 stop bit, 7 data length = K
                               4800, even parity, 2 stop bit, 8 data length = L

Returns:                       Use the Fox2LIB communications status commands
                               (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
                               COMTHR, COMTSR, and COMTOE) to obtain the status of
                               the communications line if the return value is not
                               equal to 1 or 97.  If the return value is not equal
                               to 1 or 97, load and call COM4800 again to see if
                               any errors disappear.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "Z,0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\com4800
                               . Fox2LIB = "A,0"
                               . call com4800 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "A"
                               .F.
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu com4800
                               
First test to see if you passed the parameter correctly.  From this example, the
parameter was passed correctly since the first character is not equal to "A".  
                                        COM9600


Syntax:                        COM9600

Use:                           To initialize the communications line at 9600 baud.

Parameters:                    In order to initialize the communications line, the
                               baud rate, parity, stop bit, and data length
                               parameters have to be set.  Use the table below to
                               initialize the communications lines 1, 2, 3, and 4. 

                               If you wanted to initialize communications line 1 
                               at 9600 baud, no parity, 1 stop bit, and 7 data   
                               length, you would choose the letter "A" from the  
                               table below and add a comma and the communications 
                               line to initialize - in this case the number 0.   
                               Remember, that communications line 1 is 0, line 2 
                               is 1, line 3 is 2, and line 4 is 3.  

                               9600, no parity, 1 stop bit, 7 data length = A
                               9600, no parity, 1 stop bit, 8 data length = B
                               9600, no parity, 2 stop bit, 7 data length = C
                               9600, no parity, 2 stop bit, 8 data length = D
                               9600, odd parity, 1 stop bit, 7 data length = E
                               9600, odd parity, 1 stop bit, 8 data length = F
                               9600, odd parity, 2 stop bit, 7 data length = G
                               9600, odd parity, 2 stop bit, 8 data length = H
                               9600, even parity, 1 stop bit, 7 data length = I
                               9600, even parity, 1 stop bit, 8 data length = J
                               9600, even parity, 2 stop bit, 7 data length = K
                               9600, even parity, 2 stop bit, 8 data length = L

Returns:                       Use the Fox2LIB communications status commands
                               (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
                               COMTHR, COMTSR, and COMTOE) to obtain the status of
                               the communications line if the return value is not
                               equal to 1 or 97.  If the return value is not equal
                               to 1 or 97, load and call COM9600 again to see if
                               any errors disappear.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "Z,0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\com9600
                               . Fox2LIB = "A,0"
                               . call com9600 with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "A"
                               .F.
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu com9600
                               
First test to see if you passed the parameter correctly.  From this example, the
parameter was passed correctly since the first character is not equal to "A".  
                                        COMSTAT


Syntax:                        COMSTAT

Use:                           To determine if a communications line is data
                               ready.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have the status of the communication line.  If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZOM0"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comstat
                               . Fox2LIB = "COM0"
                               . call comstat with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1)) = 97
                               .T.
                               . rele modu comstat

                               From this example, the status of communication port
                               1 is: data ready, transfer holding register empty,
                               and transfer shift register empty.  If the return
                               value is not equal to 1 or 97, load and call COMSTAT
                               again to see if any errors disappear.  If you did
                               not receive a value of 1 or 97, then an error
                               occurred, and the communications port may not ready
                               to properly receive data.























                                        COMDR


Syntax:                        COMDR

Use:                           To determine the status of data ready.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if data ready is turned on, a "N" if data
                               ready is turned off. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOM0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comdr
                               . Fox2LIB = "COM0"
                               . call comdr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comdr

                               From this example, data ready is turned on. 






























                                        COMOE


Syntax:                        COMOE

Use:                           To determine the status of overrun error.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if overrun error is turned on, a "N" if
                               overrun error is turned off. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOM0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comoe
                               . Fox2LIB = "COM0"
                               . call comoe with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comoe

                               From this example, overrun error is turned on. 






























                                        COMPE


Syntax:                        COMPE

Use:                           To determine the status of parity error.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if parity error is turned on, a "N" if
                               parity error is turned off. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOM0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\compe
                               . Fox2LIB = "COM0"
                               . call compe with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu compe

                               From this example, parity error is turned on. 






























                                        COMFE


Syntax:                        COMFE

Use:                           To determine the status of framing error.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if framing error is turned on, a "N" if
                               framing error is turned off. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOM0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comfe
                               . Fox2LIB = "COM0"
                               . call comfe with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comfe

                               From this example, framing error is turned on. 






























                                        COMBID


Syntax:                        COMBID

Use:                           To determine the status of break interrupt detected.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if break interrupt detected is turned on,
                               a "N" if break interrupt detected is turned off. If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZOM0"), your sending parameter will
                               be unchanged.

Example:                       . load c:\Fox2LIB\combid
                               . Fox2LIB = "COM0"
                               . call combid with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu combid

                               From this example, break interrupt detected is
                               turned on. 




























                                        COMTHR


Syntax:                        COMTHR

Use:                           To determine the status of transfer holding register
                               empty.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if transfer holding register empty is
                               turned on, a "N" if transfer holding register empty
                               is turned off. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOM0"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comthr
                               . Fox2LIB = "COM0"
                               . call comthr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comthr

                               From this example, transfer holding register empty
                               is turned on. 



























                                        COMTSR


Syntax:                        COMTSR

Use:                           To determine the status of transfer shift register
                               empty.                          

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if transfer shift register empty is
                               turned on, a "N" if transfer shift register empty 
                               is turned off. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOM0"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comtsr
                               . Fox2LIB = "COM0"
                               . call comtsr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comtsr

                               From this example, transfer shift register empty
                               is turned on. 



























                                        COMTOE


Syntax:                        COMTOE

Use:                           To determine the status of time-out error.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if time-out error is turned on, a "N" if
                               time-out error is turned off. If you did not pass
                               the parameter correctly (e.g. Fox2LIB = "ZOM0"),
                               your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\comtoe
                               . Fox2LIB = "COM0"
                               . call comtoe with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu comtoe

                               From this example, time-out error is turned on. 






























                                        LPTINIT


Syntax:                        LPTINIT

Use:                           To initialize the line printer (LPT).

Parameters:                    LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.

Returns:                       The first character in the sending parameter will
                               have the status of the line printer.  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "ZPT0"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\lptinit
                               . Fox2LIB = "LPT0"
                               . call lptinit with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               144
                               . rele modu lptinit
                               
                               From this example, the printer status for LPT1 after
                               initialization is ready to print.

                               Below is a table of possible outcomes:

                               0 = Initialization successful
                               8 = Offline
                               40 = Out of paper
                               72 = I/O error
                               144 = Printer ready
                               200 = Printer power off

                               The above values are only valid with IBM and EPSON
                               compatible printers.  If you have a different type
                               of printer, you may be able to determine the value
                               specific to your printer.  If you are using a non-
                               compatible printer, run LPTINIT under different
                               conditions (e.g. printer on, printer not turned on,
                               etc.).  The results you obtain may allow you to
                               build a table of outcomes for your particular
                               printer.  When you test LPTINIT using a non-
                               IBM/EPSON compatible printer, make sure all of your
                               FOX application files are closed.  Otherwise, you
                               may get unwanted results!









                                        MODMDCTS


Syntax:                        MODMDCTS

Use:                           To determine the status of delta clear to send. 

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if delta clear to send is turned on, a
                               "N" if delta clear to send is turned off. If you did
                               not pass the parameter correctly (e.g. Fox2LIB =
                               "ZOM0"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmdcts
                               . Fox2LIB = "COM0"
                               . call modmdcts with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmdcts

                               From this example, delta clear to send is turned on.






























                                        MODMDDSR


Syntax:                        MODMDDSR

Use:                           To determine the status of delta data set ready. 

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if delta data set ready is turned on, a
                               "N" if delta data set ready is turned off. If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZOM0"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmddsr
                               . Fox2LIB = "COM0"
                               . call modmddsr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modmddsr

                               From this example, delta data set ready is turned
                               on. 





























                                        MODMTER


Syntax:                        MODMTER

Use:                           To determine the status of trailing edge ring
                               detector.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if trailing edge ring detector is turned
                               on, a "N" if trailing edge ring detector is turned
                               off. If you did not pass the parameter correctly
                               (e.g. Fox2LIB = "ZOM0"), your sending parameter
                               will be unchanged.

Example:                       . load c:\Fox2LIB\modmter
                               . Fox2LIB = "COM0"
                               . call modmter with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmter

                               From this example, trailing edge ring detector is
                               turned on. 



























                                        MODMDRLS


Syntax:                        MODMDRLS

Use:                           To determine the status of delta receive line signal
                               detect.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if delta receive line signal detect is
                               turned on, a "N" if delta receive line signal detect
                               is turned off. If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOM0"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmdrls
                               . Fox2LIB = "COM0"
                               . call modmdrls with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmdrls

                               From this example, delta receive line signal detect
                               is turned on. 



























                                        MODMCTS


Syntax:                        MODMCTS

Use:                           To determine the status of clear to send.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if clear to send is turned on, a "N" if
                               clear to send is turned off. If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZOM0"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmcts
                               . Fox2LIB = "COM0"
                               . call modmcts with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmcts

                               From this example, clear to send is turned on. 






























                                        MODMDSR


Syntax:                        MODMDSR

Use:                           To determine the status of data set ready.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if data set ready is turned on, a "N" if
                               data set ready is turned off. If you did not pass
                               the parameter correctly (e.g. Fox2LIB =
                               "ZOM0"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmdsr
                               . Fox2LIB = "COM0"
                               . call modmdsr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmdsr

                               From this example, data set ready is turned on. 






























                                        MODMRI


Syntax:                        MODMRI

Use:                           To determine the status of ring indicator.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if ring indicator is turned on, a "N" if
                               ring indicator is turned off. If you did not pass
                               the parameter correctly (e.g. Fox2LIB = "ZOM0"),
                               your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\modmri
                               . Fox2LIB = "COM0"
                               . call modmri with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmri

                               From this example, ring indicator is turned on. 






























                                        MODMRLS


Syntax:                        MODMRLS

Use:                           To determine the status of receive line signal
                               detect.

Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
                               COM3 for com4.

Returns:                       The first character in the sending parameter will
                               have a "Y" if receive line signal detect is turned
                               on, a "N" if receive line signal detect is turned
                               off. If you did not pass the parameter correctly
                               (e.g. Fox2LIB = "ZOM0"), your sending parameter
                               will be unchanged.

Example:                       . load c:\Fox2LIB\modmrls
                               . Fox2LIB = "COM0"
                               . call modmrls with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu modmrls

                               From this example, receive line signal detect is
                               turned on. 







































                                    MISCELLANEOUS COMMANDS









































                                        CDROMDRV


Syntax:                        CDROMDRV

Use:                           To determine the presence of the MS CD-ROM
                               extensions (MSCDEX.exe).  If your application is
                               retrieving information from a CD-ROM, you should
                               first see if the extensions are loaded into memory.

Parameters:                    CDROM

Returns:                       The first character in the sending parameter will
                               have a "Y" if the extensions are present in memory,
                               and a "N" if they are not present.  If you did not
                               pass the parameter correctly (e.g. Fox2LIB =
                               "ZDROM"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\cdromdrv
                               . Fox2LIB = "CDROM"
                               . call cdromdrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu cdromdrv
                                                                
                               From the above example, the CD-ROM extension is
                               present in memory.

Example:                       if substr(Fox2LIB,1,1) = "N"
                                  @ 1,0 Say "Error!  Need MS CD-ROM extensions."
                                  @ 2,0 Say "Exit from application, load MS CD-ROM"
                                  @ 3,0 Say "extensions, and re-start program."
                               endif

                               Use the above example to warn the computer user if
                               the CD-ROM extensions are not loaded into memory.

See:                           CDROMVER
















                                        CDROMVER


Syntax:                        CDROMVER

Use:                           To determine the CD-ROM extension version.

Parameters:                    CDROM

Returns:                       The first character in the sending parameter will
                               have the CD-ROM major version number, and the second
                               character in the sending parameter will have the CD-
                               ROM minor version number if the CD-ROM extension
                               module is present in memory.  If the CD-ROM
                               extension module is not present in memory, you will
                               get garbage.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZDROM"), your sending
                               parameter will be unchanged.

Example:                       . load c:\Fox2LIB\cdromdrv
                               . Fox2LIB = "CDROM"
                               . call cdromdrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu cdromdrv

                               . load c:\Fox2LIB\cdromver
                               . Fox2LIB = "CDROM"
                               . call cdromver with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               . 2
                               . ?asc(substr(Fox2LIB,2,1))
                               . 10
                               . rele modu cdromver

                               From the above example, first verify that the CD-ROM
                               extension is present in memory.  If it is, determine
                               the CD-ROM extension version number.  In this
                               example it is 2.10.


See:                           CDROMDRV












                                        DAYWEEK


Syntax:                        DAYWEEK

Use:                           To determine the day of the week.

Parameters:                    DAY

Returns:                       The first character in the sending parameter will
                               have the day of the week (0=Sunday, 1=Monday, etc.).

                               If you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZAY"), your sending parameter will be
                               unchanged.

Example:                       . load c:\Fox2LIB\dayweek
                               . Fox2LIB = "DAY"
                               . call dayweek with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               3
                               . rele modu dayweek
                               
                               From this example, day of the week is Wednesday. 
                               Below is a list of all possible outcomes:

                               0 = Sunday
                               1 = Monday
                               2 = Tuesday
                               3 = Wednesday
                               4 = Thursday
                               5 = Friday
                               6 = Saturday





















                                        MOUSECTR


Syntax:                        MOUSECTR

Use:                           To determine the status of the left mouse button. 
                               Use this command only when you want to test the
                               functionality of the center mouse button.  Have the
                               end-user hold down the center mouse button on any
                               non-responsive (i.e. blank area of the screen)
                               section of the computer display.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have a "Y" if the cneter mouse button is down, and
                               a "N" if the center mouse button is not down.  If
                               you did not pass the parameter correctly (e.g.
                               Fox2LIB = "ZOUSE"), your sending parameter will be
                               unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mousectr
                               . Fox2LIB = "MOUSE"
                               . call mousectr with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousectr

                               From this example, the center mouse button is down.

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
                               MOUSELFT, MOUSESHW, MOUSEHID

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.

                               This command only works with FoxPro since it is the
                               only FOX DBMS that comes with mouse support.






                                        MOUSEDRV


Syntax:                        MOUSEDRV

Use:                           To determine the presence of the mouse driver. 

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have a "Y" if the mouse driver is present in memory,
                               and a "N" if it is not present.  If you did not pass
                               the parameter correctly (e.g. Fox2LIB
                               ="ZOUSE"), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               From this example, the mouse driver is present in
                               memory. 

Example:                       if substr(Fox2LIB,1,1) = "N"
                                  @ 1,0 Say "Error!  Need mouse driver in memory."
                                  @ 2,0 Say "Exit from application, load mouse" 
                                  @ 3,0 Say "driver into memory, and re-start"
                                  @ 4,0 Say "program."
                               endif

                               If your application requires a mouse, first test to
                               see if the mouse driver has been loaded into memory.

See:                           MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
                               MOUSESHW, MOUSEHID, MOUSECTR

















                                        MOUSEHID


Syntax:                        MOUSEHID

Use:                           To remove the mouse pointer from the display.

Parameters:                    MOUSE

Returns:                       Nothing.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOUSE"), your sending
                               parameter will be unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mousehid
                               . Fox2LIB = "MOUSE"
                               . call mousehid with Fox2LIB
                               . rele modu mousehid

                               From this example, the mouse pointer was removed
                               from the display.

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
                               MOUSELFT, MOUSESHW, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.

                               This command only works with FoxPro since it is the
                               only FOX DBMS that comes with mouse support.















                                        MOUSELFT


Syntax:                        MOUSELFT

Use:                           To determine the status of the left mouse button. 
                               Use this command only when you want to test the
                               functionality of the left mouse button.  Have the
                               end-user hold down the left mouse button on any non-
                               responsive (i.e. blank area of the screen) section
                               of the computer display.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have a "Y" if the left mouse button is down, and a
                               "N" if the left mouse button is not down.  If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZOUSE"), your sending parameter will be
                               unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mouselft
                               . Fox2LIB = "MOUSE"
                               . call mouselft with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mouselft

                               From this example, the left mouse button is down.

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
                               MOUSESHW, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.

                               This command only works with FoxPro since it is the
                               only FOX DBMS that comes with mouse support.






                                        MOUSELNG


Syntax:                        MOUSELNG

Use:                           To determine the mouse language.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have the language number if the mouse driver is
                               present in memory, and garbage if the mouse driver
                               is not present.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOUSE"), your sending
                               parameter will be unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mouselng
                               . Fox2LIB = "MOUSE"
                               . call mouselng with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               . 0
                               . rele modu mouselng

                               From this example, the mouse language is English. 
                               Below is a table of all possible outcomes.

                               0 = English
                               1 = French
                               2 = Dutch
                               3 = German
                               4 = Swedish
                               5 = Finnish
                               6 = Spanish
                               7 = Portuguese
                               8 = Italian

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSERHT, MOUSELFT,
                               MOUSESHW, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.



                                        MOUSERHT


Syntax:                        MOUSERHT

Use:                           To determine the status of the right mouse button.
                               Use this command only when you want to test the
                               functionality of the right mouse button.  Have the
                               end-user hold down the right mouse button on any
                               non-responsive (i.e. blank area of the screen)
                               section of the computer display.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have a "Y" if the right mouse button is down, and 
                               a "N" if the right mouse button is not down.  If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = "ZOUSE"), your sending parameter will be
                               unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mouserht
                               . Fox2LIB = "MOUSE"
                               . call mouserht with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mouserht

                               From this example, the right mouse button is down.

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSELFT,
                               MOUSESHW, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.

                               This command only works with FoxPro since it is the
                               only FOX DBMS that comes with mouse support.






                                        MOUSESHW


Syntax:                        MOUSESHW

Use:                           To Display the mouse pointer.

Parameters:                    MOUSE

Returns:                       Nothing.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOUSE"), your sending
                               parameter will be unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mouseshw
                               . Fox2LIB = "MOUSE"
                               . call mouseshw with Fox2LIB
                               . rele modu mouseshw

                               From this example, the mouse pointer is displayed. 

See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
                               MOUSELFT, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.

                               This command only works with FoxPro since it is the
                               only FOX DBMS that comes with mouse support.
















                                        MOUSETYP


Syntax:                        MOUSETYP

Use:                           To determine the mouse type.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have the mouse type if the mouse driver is present
                               in memory, and garbage if the mouse driver is not
                               present.  If you did not pass the parameter
                               correctly (e.g. Fox2LIB = "ZOUSE"), your sending
                               parameter will be unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mousetyp
                               . Fox2LIB = "MOUSE"
                               . call mousetyp with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               . 2
                               . rele modu mousetyp

                               From this example, the mouse type is serial mouse. 
                               Below is a table of all possible outcomes.

                               1 = Bus mouse
                               2 = Serial mouse
                               3 = InPort mouse
                               4 = PS/2 mouse
                               5 = HP mouse

See:                           MOUSEDRV, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
                               MOUSESHW, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.







                                        MOUSEVER


Syntax:                        MOUSEVER

Use:                           To determine the mouse version.

Parameters:                    MOUSE

Returns:                       The first character in the sending parameter will
                               have the mouse major version number, and the second
                               character in the sending parameter will have the
                               mouse minor version number if the mouse driver is
                               present in memory.  If the mouse driver is not
                               present in memory, you will get garbage.  If you did
                               not pass the parameter correctly (e.g. Fox2LIB =
                               "ZOUSE"), your sending parameter will be unchanged.

Example:
                               . load c:\Fox2LIB\mousedrv
                               . Fox2LIB = "MOUSE"
                               . call mousedrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu mousedrv

                               . load c:\Fox2LIB\mousever
                               . Fox2LIB = "MOUSE"
                               . call mousever with Fox2LIB
                               . ?asc(substr(Fox2LIB,1,1))
                               . 6
                               . ?asc(substr(Fox2LIB,2,1))
                               . 36
                               . rele modu mousever

                               From this example, the mouse version number is 6.36.

                               Please note that our mouse displayed version 6.24
                               when we executed mouse.com from the DOS prompt. 
                               When we used the Fox2LIB command MOUSEVER from
                               within FOX it returned version 6.36.  

See:                           MOUSEDRV, MOUSETYP, MOUSELNG, MOUSERHT, MOUSELFT,
                               MOUSESHW, MOUSEHID, MOUSECTR

Notes:                         First determine if the mouse driver has been loaded
                               into memory using the Fox2LIB command "MOUSEDRV"
                               before using this command.  Otherwise, you will get
                               unwanted results.





                                        NUMCHAR


Syntax:                        NUMCHAR

Use:                           To determine if the parameter (byte) passed is a
                               character or a number.

Parameters:                    Character or number.

Returns:                       The first character in the sending parameter will
                               have a "C" if the parameter passed is a character,
                               a "N" if the parameter passed is a number.  If you
                               did not pass the parameter correctly (e.g. Fox2LIB
                               = ""), your sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\numchar
                               . Fox2LIB = "A"
                               . call numchar with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "C"
                               .T.
                               . rele modu numchar

                               From this example, the parameter passed is a
                               character.

Example:                       . load c:\Fox2LIB\numchar
                               . Fox2LIB = "0"
                               . call numchar with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "N"
                               .T.
                               . rele modu numchar

                               From this example, the parameter passed is a number.




















                                        PRNTSCRN


Syntax:                        PRNTSCRN

Use:                           To print the ASCII contents on the monitor (screen).

Parameters:                    None

Returns:                       Nothing.

Example:                       . load c:\Fox2LIB\prntscrn
                               . call prntscrn
                               . rele modu prntscrn
                                                                
                               From this example, the ASCII contents on the monitor
                               (screen) are sent to the printer.

Notes:                         Make sure the printer is turned on and is ready to
                               accept the screen output.  Otherwise, you could
                               unwanted results.

































                                        XMSDRV


Syntax:                        XMSDRV

Use:                           To determine the presence of the HIMEM.SYS driver. 

Parameters:                    XMSDRV

Returns:                       The first character in the sending parameter will
                               have a "Y" if the driver is present in memory, and
                               a "N" if it is not present.  If you did not pass the
                               parameter correctly (e.g. Fox2LIB = "ZMSDRV"), your
                               sending parameter will be unchanged.

Example:                       . load c:\Fox2LIB\xmsdrv
                               . Fox2LIB = "XMSDRV"
                               . call xmsdrv with Fox2LIB
                               . ?substr(Fox2LIB,1,1) = "Y"
                               .T.
                               . rele modu xmsdrv
                                                                
                               From this example, the HIMEM.SYS driver is present
                               in memory.






























BIOSDATE ........... Page 29
CDROMDRV ........... Page 82
CDROMVER ........... Page 83
COM1200 ............ Page 59
COM2400 ............ Page 60
COM300 ............. Page 58
COM4800 ............ Page 61
COM9600 ............ Page 62
COMBID ............. Page 68
COMDR .............. Page 64
COMFE .............. Page 67
COMOE .............. Page 65
COMPE .............. Page 66
COMSTAT ............ Page 63
COMTHR ............. Page 69
COMTOE ............. Page 71
COMTSR ............. Page 70
CONVMEM ............ Page 30
CREATDIR ........... Page 17
DAYWEEK ............ Page 84
DOSVERS ............ Page 18
DRIVERDY ........... Page 19
EXTMEM ............. Page 31
GAMEADAP ........... Page 32
GETATTR ............ Page 21
GETDRIVE ........... Page 20
GETVERFY ........... Page 22
LEFTSHFT ........... Page 52
LPTINIT ............ Page 72
MCA ................ Page 33
MODMCTS ............ Page 77
MODMDCTS ........... Page 73
MODMDDSR ........... Page 74
MODMDRLS ........... Page 76
MODMDSR ............ Page 78
MODMRI ............. Page 79
MODMRLS ............ Page 80
MODMTER ............ Page 75
MOUSECTR ........... Page 85
MOUSEDRV ........... Page 86
MOUSEHID ........... Page 87
MOUSELFT ........... Page 88
MOUSELNG ........... Page 89
MOUSERHT ........... Page 90
MOUSESHW ........... Page 91
MOUSETYP ........... Page 92
MOUSEVER ........... Page 93
NODRIVES ........... Page 34
NUMCHAR ............ Page 94
PARALLEL ........... Page 48
PC ................. Page 35
PCAT ............... Page 38
PCBUS .............. Page 35
PCCONV ............. Page 41
PCJR ............... Page 39
PCXT ............... Page 37
PCXT286 ............ Page 40
PRNTSCRN ........... Page 95
PS2M30 ............. Page 42
PS2M50 ............. Page 43
PS2M55 ............. Page 44
PS2M60 ............. Page 45
PS2M70 ............. Page 46
PS2M80 ............. Page 47
REALTIME ........... Page 49
REMOVDIR ........... Page 23
RGHTSHFT ........... Page 53
SCRLOFF ............ Page 55
SCRLON ............. Page 56
SCRLSTAT ........... Page 54
SERIAL ............. Page 50
SETATTR ............ Page 26
SETDIR ............. Page 24
SETDRIVE ........... Page 25
SETVERFY ........... Page 27
XMSDRV ............. Page 96
