home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X.00 Low Level Communications Driver
-
- X.00 Copyright (c) 1987, 1988, 1989 by Raymond L. Gwinn
- 12469 Cavalier Drive
- Woodbridge, Virginia 22192
- All rights reserved
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introduction
-
- X00.SYS was originally developed for generally unrestricted
- personal use with the OPUS bulletin board system. It has long
- been obvious to me that its use has extended far beyond the
- original intent. X00 is now one of the most widely used
- communications drivers for PCs in the world.
-
- X00.SYS itself is commercial quality software. However, the
- documentation is not commercial quality. In the next few months
- I will attempt to correct the inadequate documentation. For a
- description of the X00 function calls, see the distribution text
- files FOSSIL.DOC and FOSSIL.CHT.
-
- I have received many requests concerning licensing of X00 for
- commercial use. In general I have avoided commercial licensing
- because of the documentation problems and the spirit in which X00
- was originally developed. I now receive so many commercial
- licensing requests that I am forced to address the issue.
-
- To remain within the original spirit in which X00 was developed,
- personal use will remain free of any required fees. Commercial
- licenses will be granted in return for a contribution to a
- charity or good cause which I define.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Non-Commercial License:
-
- A non-commercial license for use of X00 is included in the
- distribution file called LICENSE.TXT.
-
- I have received several unsolicited checks from users of X00.
- All of the checks have been returned or uncashed. To date, I
- have not accepted any payments for X00. If you feel that X00 is
- useful enough that some sort of payment is justified then read
- on.
-
- Our local (public) High School desperately needs funds. The
- school officials work at keeping the students off the streets and
- away form drugs. The local School Board is unable to provide
- needed funds for non-academic activities. I suggest a $10.00
- contribution be sent to:
-
- Woodbridge Senior High School
- 30013 Old Bridge Road
- Woodbridge, Virginia, 22192
-
- You can make the check payable to "WSHS, Ballfield Improvement
- Fund". Please make a note "X00 contribution" somewhere on the
- check.
-
- Many of you have used X00 for years. I believe $10.00 is easily
- affordable to most X00 users. Please take the time to sit down,
- make out the check, address the envelop, and mail a contribution.
-
- Shareware authors that wish to distribute X00 with their product
- should contact me. Permission will usually be granted.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Commercial License:
-
- Commercial Licenses will be liberally granted in return for a
- donation (usually tax deductible). Each commercial license will
- be individually granted. That is, there is no single policy that
- can be stated here. Some generally uniform commercial license
- policies follow.
-
- 1 - X00 is usually licensed by product.
-
- 2 - All commercial licensees of X00 will receive a special copy
- of X00 that will identify, at boot time, the commercial product.
-
- 3 - I may require a fully licensed, fully featured, copy of your
- product for personal use on multiple computers.
-
- 4 - The required contribution, which is never to me personally,
- will usually be a one time contribution of $100.00.
-
- 5 - Proof of licensing belongs to you. That is, I am not going
- to be responsible for keeping records. I suggest that you keep a
- copy of the donation check so that you can send me a copy if a
- question arises. Otherwise you may have to make another
- contribution.
-
- 6 - You may only distribute versions of X00 that contain your
- product name in the X00 banner (at boot time).
-
- 7 - If you wish to have the latest version of X00 automatically
- sent to you with your product name in the X00 banner, then do the
- following: Send me a check for $10.00, in advance, along with a
- pre addressed mailing label. If you require a 3.5 inch diskette,
- then write "3.5 inch" on the pre addressed mailing label and send
- $15.00 (instead of $10.00). For updates, the check should be
- made out to Raymond L. Gwinn. The checks will be cashed when
- received. Individuals that wish to receive a mailed copy of the
- latest X00 version may also use this procedure. Once you have
- received an update, you will need to resend the update fee and
- pre addressed mailing label if you desire to receive the next
- update.
-
- 8 - Your contribution check should state "X00 Licensing
- contribution" in the Memo or comment field.
-
- If you write me about a commercial license, please include a
- voice phone number. You may not receive a response if the voice
- phone number is omitted. Correspondence should be sent to:
-
- Raymond L. Gwinn
- 12469 Cavailer Dr.
- Woodbridge, Va. 22192
-
- Prior to making the special version of X00 available, I will may
-
-
-
-
-
-
-
-
-
-
-
-
- wait for the check to clear the bank. If the check bounces, I
- will, most likely, not give any further consideration to a
- commercial license.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The latest version of X00.SYS is available for down-loading from
- The Renex BBS (FidoNet 109/106), 703-690-7950.
-
- I make Beta/test versions of X00.SYS readily available. This has
- caused some confusion among various users. That is, they are
- using beta versions of X00.SYS and think they are using a fully
- tested (if there is such a thing) versions. Starting with
- version 1.02 of X00.SYS, I am going to use the following method
- in numbering the versions. If the version number ends with an
- odd number, then it is a beta version. If it ends with an even
- number, then it is a tested version that is (relatively) safe for
- general use. Then, versions 1.01, 2.15 and 1.07 would be beta
- versions. Versions 1.00, 1.02, 2.00 and 2.14 would not be beta
- versions. The beta versions will always have (and always have
- had) a lower case letter appended to the version number. For
- example, 1.01f is one way that you will see beta versions
- identified. If you find a problem in a beta/test version, let me
- know about it by direct mail.
-
- X00.SYS and associated utilities comes with no guarantees or
- warranties. Use it at your own risk.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X00.SYS provides enhanced/extended support of INT 14H functions.
- Documentation of the enhanced/extended functions can be found in
- the included file FOSSIL.DOC by Vincent E. Perriello.
-
- DoubleDOS. Since writing X.00, I have learned more about DDos
- than I ever wanted to know. A few rules for DDos users that I
- know are: 1 - Do not assign the comm ports in DDCONFIG.SYS, 2 -
- Be sure to execute CAPTURE after you execute DOUBLEDO. To be
- safe, execute CAPTURE in both partitions. 3 - If you have
- problems with your clock, try the Defer option. 4 - Be sure to
- replace ANSI.SYS with DBLDANSI.SYS. For some reason, I had
- problems if the TOP partition was not delayed. That is, the
- BOTTOM partition must initialize before the TOP partition does.
-
- The semi-formal syntax for the statement to be placed in the
- CONFIG.SYS file is as follows:
-
- DEVICE=X00.SYS <options>
-
- <options> ::= <none> | <eliminate> <defer> <port specs> <baud>
- <size> <fifospec>
-
- <none> ::=
-
- <eliminate> ::= E{LIMINATE}
-
- <defer> ::= D{EFER}
-
- <fifospec> ::= NOFIFO
-
- <baud> ::= B,<port number>,<baud rate>
-
- <size> ::= R=<receive buffer size> T=<transmit buffer size>
-
- <receive buffer size> ::= <buffer size>
-
- <transmit buffer size> ::= <buffer size>
-
- <nasty> ::=N{ASTY}
-
- <buffer size> ::= 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 |
- 32768
-
- <baud rate> ::= 300 | 1200 | 2400 | 4800 | 9600 | 19200 | 38400
-
- <port spec> ::= <number of ports> | <hardware port assignment>
-
- <number of ports> ::= 0 | 1 | 2 | 3 | 4
-
- <hardware port assignment> ::= <port number> = <assignment>
-
- <port number> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
-
- <assignment> ::= <logical> | <absolute>
-
-
-
-
-
-
-
-
-
-
-
-
-
- <logical> ::= <comn> {, <irqn>}
-
- <comn> ::= <COM1> | <COM2> | <COM3> | <COM4>
-
- <irqn> ::= <IRQ0> | <IRQ1> ........ <IRQ15>
-
- <absolute> ::= <hex port address> , <irqn>
-
- <hex port address> ::= Any hex number 0 through 0FFFF. The first
- character must be 0 through 9.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The simplest statement for the CONFIG.SYS file is as follows:
-
- DEVICE=X00.SYS
-
- This statement will be all that is required on the vast majority
- of systems. It says that you wish to support one comm port.
- Exactly which comm port will be specified by the application
- program.
-
- I have found that communications ports on some systems must be
- initialized at boot time. In the simplest case shown above, X00
- knows that it will serve only one communications port, but it
- does not know which comm port. Thus, the port will not be
- initialized. In many cases, the port to be used is COM1. If the
- above statement is changed to:
-
- DEVICE=X00.SYS 0=COM1
-
- X00 then knows that you intend to use COM1. In this case, X00
- will initialize COM1 to a know state. If you have problems, like
- "modem not responding", then try specifically stating the
- communication port(s) you intend to use.
-
- Option descriptions:
-
- DEFER - DO NOT USE THIS OPTION UNLESS YOU UNDERSTAND ITS PURPOSE
- AND YOU NEED TO USE IT. IF YOUR SYSTEM WORKS WITHOUT THIS
- OPTION, THEN DO NOT USE IT. If you needed to use this option
- with past versions of X00.SYS, then try this version without it.
- Do not automatically assume that you still need it. At least
- half of the reported problems with X00 have resulted from the
- casual use of this option. This option specifies that X00.SYS is
- not to take any DOS interrupt vectors during the boot process.
- If DEFER is specified, then CAPTURE must be executed prior to
- executing a program that requires X00. Your AUTOEXEC.BAT file is
- the best place to execute CAPTURE. With MultiLink, CAPTURE
- should be executed before multi-tasking is started. However, as
- with 99% of all systems, MultiLink systems should work correctly
- (and better) without the DEFER option. Unless you are using some
- strange software, you should not need to use the DEFER option.
- If your system does not boot correctly with X00.SYS, then try the
- DEFER option followed by CAPTURE in your AUTOEXEC.BAT file.
- X00.SYS only checks for the D in DEFER.
-
- ELIMINATE will eliminate the 5 second commercial at boot time
- (which is a direct screen memory write).
-
- NOFIFO will cause X00 to NOT enable the FIFOs of the National
- 16550. Some Multi-Tasking systems have problems when the 16550's
- FIFOs are enabled. NOFIFO allows the user to override the
- automatic use of the 16550's FIFOs by X00.
-
- Number of ports. When you wish to use the default IBM
-
-
-
-
-
-
-
-
-
-
-
-
- communication port addresses and IRQs, you should simply specify
- the number of ports that you wish to support (the default is 1).
- Although X00 V1.00 and up can support up to 8 ports, you can only
- specify 0 through 4 supported ports. The reason is that there is
- only 4 defined ports (COM1, COM2, COM3, COM4) that X00 can
- default to. If you use the absolute method (described later),
- you can specify up to 8 devices. X00 assumes that COM1 and COM2
- are addressed as originally defined by IBM. The default hardware
- characteristics of COM3 and COM4 are 03E8H, IRQ4 and 02E8H, IRQ3
- respectively. This seems to be a defacto standard, although no
- real standard exists that I know of.
-
- The T and R options (or help, the sky is falling). Trying to be
- all comm drivers to all protocols on all computers (especially
- betas) is not easy. The T and R options allow you to specify the
- size of the transmit and receive buffers. The buffer size must
- be a power of 2. The sum total, in bytes, of all buffers can not
- exceed 48k bytes. For example, DEVICE=X00.SYS T=32768 R=16384 is
- valid (only one port). However, DEVICE=X00.SYS 2 T=16384 R=16384
- is not valid (2 ports each with a 16k transmit and receive buffer
- = 32k per port or 64k). In the second example the total buffer
- size exceeds the maximum of 48k. X00 SHOULD (but not
- necessarily) beep the bell and display an error message at boot
- time if you attempt to define too much buffer space.
-
- The <baud> option allows you to lock the baud rate from the
- computer to the modem. When this option is specified for a port,
- the baud rate from the computer to the modem will remain constant
- regardless of what the application program (such as RBBS)
- requests the baud rate to be. This option is to accommodate the
- higher speed modems like the Telebit TrailBlazer and USR HST
- modems. When this option is used, RTS/CTS handshaking is implied
- (forced) even if the application program has not requested
- RTC/CTS handshaking. Both Telebit and USR recommend in their
- manuals that the computer to modem baud rate be constant. My
- personal experience has shown that both modem types operate
- better when the computer to modem baud rate is faster than the
- actual phone line baud rate.
-
- The <nasty> option makes X00 get very aggressive about keeping
- the COMM interrupts. Many multi-tasking systems and some TSRs
- mess around with the COMM IRQs and thus, slow things down. I
- finally figured out how to keep them at bay. However, the NASTY
- option may cause problems on some systems. If you are running a
- multi-line system, try the NASTY option. If it does not crash,
- you will probably see improved throughput. Running COMM type
- code in LIM memory may crash with NASTY enabled. The default for
- NASTY is disabled.
-
- The required communications buffers are allocated dynamically.
- All code used for initialization is overlaid by the buffers or
- released to DOS by X00 when it completes initialization at boot
- time.
-
-
-
-
-
-
-
-
-
-
-
-
-
- IRQs. The AT's additional 8 IRQs are supported. X00 can support
- multiple ports on a single interrupt. When multiple ports are
- assigned to a single interrupt, X00 will poll each of the ports
- to find the interrupting device(s).
-
- If you plan to reassign the port(s) to a non-standard
- configuration or use some strange hardware, it is best to think
- in port numbers instead of COMn. Most application programs
- documentation refers to COM1 and COM2. However, when the
- application program communicates with a FOSSIL driver, it calls
- COM1 device/port 0 and COM2 is device/port 1.
-
- Some examples of CONFIG.SYS statements are as follows:
-
- DEVICE = X00.SYS E
- Which means one port, no commercial.
-
- DEVICE = X00.SYS 2
- Allocate space for buffers (at the default size of 1k) and
- provide support for COM1 and COM2.
-
- DEVICE = X00.SYS T=1024 R=4096
- One port supported, all transmit buffers are to be 1k and all
- receive buffers are to be 4k.
-
- DEVICE = X00.SYS 2 B,1,19200
- Same as the above except COM2 will always operate at 19200 baud.
- COM1 will operate at the baud rate set by the application
- program.
-
- DEVICE = X00.SYS 2 B,0,19200
- Same as the above except COM1 is fixed at 19200. COM2 will
- operate at the baud rate set by the application program.
-
- DEVICE = X00.SYS 2 B,0,19200 B,1,9600 NOFIFO
- In this example the baud rate for COM1 is locked at 19200 baud
- and COM2 is locked at 9600 baud. Additionally, the FIFOs of the
- National 16550 will not be enabled.
-
- DEVICE = X00.SYS 0=COM3
- One port supported but, use COM3 on IRQ4 (the default). The
- application program will think (and must be configured) that it
- is using COM1 in this case.
-
- DEVICE = X00.SYS 0=COM3,IRQ4
- Exactly the same as above.
-
- DEVICE = X00.SYS 0=COM3,4
- Exactly the same as above.
-
- DEVICE = X00.SYS 0=COM3,IRQ1
- Same as above except IRQ1 is to be used.
-
- DEVICE = X00.SYS 0=COM4 1=COM3
-
-
-
-
-
-
-
-
-
-
-
-
- Two ports supported, Opus thinks COM4 is COM1 and that COM3 is
- COM2. Use the default IRQs for COM4 and COM3.
-
- DEVICE = X00.SYS 0=COM4 1=COM3 NASTY
- Exactly the same as the previous example except the NASTY option
- is enabled. Note that NASTY may cause problems on some systems.
-
- Now some absolute assignment examples. When hex port addresses
- are used, the IRQ must be specified.
-
- DEVICE = X00.SYS 0=0FE8,IRQ4
- Support one serial (8250 type) device with a base port address of
- 0FE8H and use IRQ4
-
- DEVICE = X00.SYS 0=3F8,IRQ4 1=2F8,IRQ4
- Support 2 serial devices at the given hex port address and both
- will interrupt on IRQ4.
-
- etc, etc, etc.
-
- If you are not confused by now, I am, so I'm giving up
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-