home *** CD-ROM | disk | FTP | other *** search
/ PC-Test Pro / PCTESTPRO.iso / commtls / spm / org / spm220e.exe / STARGUID.DOC < prev    next >
Encoding:
Text File  |  1995-10-20  |  63.9 KB  |  1,220 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.               S E R I A L     P O R T S     M A N A G E R     v 2.20
  21.               ------------------------------------------------------
  22.                 S.T.A.R.COMM     Serial Turbo Async. Resident COMMs
  23.               ------------------------------------------------------
  24.                                                             10/20/95
  25.  
  26.               ══════════════(C)opyRight HETRU 1991-1995═════════════
  27.                          13, chemin de la croix St Vincent
  28.                            94430 CHENNEVIERES SUR MARNE
  29.                                       FRANCE
  30.                              tel: (16-1) 45-93-27-38
  31.  
  32.                          CompuServe address: 100414,1524
  33.                        Internet: 100414.1524@Compuserve.com
  34.  
  35.  
  36.  
  37.  
  38.                              U S E R    G U I D E
  39.  
  40.  
  41.  
  42.  
  43.  
  44.            REMARK: In all this document, STARCOMM.EXE could be replaced by
  45.        STARCOM8.EXE. STARCOMM.EXE is interfacing no more than 4 ports, whereas
  46.        STARCOM8.EXE could support up to 8 ports ! (All the values limits
  47.        specified in the following text are for STARCOM8: we refer to "COM8:"
  48.        or to "8" ports or buffers. Just change these values to "COM4": or "4"
  49.        if you consider STARCOMM !)
  50.  
  51.  
  52.  
  53.  
  54.                              TABLE OF CONTENTS
  55.  
  56.  
  57.  
  58.  
  59.  
  60.    Introduction........................................................ 1
  61.  
  62.  
  63.  
  64.    I- Functional features of STARCOMM.................................. 2
  65.  
  66.  
  67.  
  68.    II- Respective advantages between "BIOS" and "DEVICE DRIVER" installations
  69.  
  70.        1- Used in the BIOS (T.S.R.) mode............................... 4
  71.  
  72.        2- Used in the DEVICE DRIVER mode............................... 4
  73.  
  74.        3- When using the library (SCLIB.OBJ)........................... 4
  75.  
  76.  
  77.  
  78.    III- STARCOMM.EXE COMMAND SYNTAX
  79.  
  80.        1- To load the driver in its T.S.R. BIOS mode................... 5
  81.  
  82.        2- To load the driver in its DOS DEVICE DRIVER mode............. 5
  83.  
  84.        3- Commands and options known by STARCOMM.EXE................... 6
  85.  
  86.  
  87.  
  88.    IV- USING SPECIFIC(S) DEVICE(S) ON SERIAL PORT(S)
  89.  
  90.        1- Using a mouse in 'competition' with STARCOMM................. 13
  91.  
  92.        2- Accessing to an internal or external modem................... 13
  93.  
  94.        3- All type of devices knowing a protocol....................... 13
  95.  
  96.  
  97.  
  98.    V- SETPORT.COM UTILITY
  99.  
  100.        1- Syntax of SETPORT.COM........................................ 14
  101.  
  102.        2- Command options of SETPORT.COM............................... 14
  103.  
  104.  
  105.  
  106.    ANNEX A:  Principle of the null-modem cable......................... 17
  107.  
  108.    ANNEX B:  Types of UART chips on PC and compatibles................. 19
  109.  
  110.    ANNEX C:  Why a "BIOS emulation" ?.................................. 20
  111.  
  112.    ANNEX D:  Files making SERIAL PORTS MANAGER v2.20................... 21
  113.  
  114.                                                                         1
  115.  
  116.  
  117.  
  118.  
  119.  
  120.                                INTRODUCTION
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.       This document exposes the main features of the serial driver, and the
  131.     different ways STARCOMM.EXE can be used.
  132.  
  133.       This driver was developed in 8086 assembler language on IBM-PC and works
  134.     under MS-PC/DOS and all compatibles operating systems (DR-DOS, DOS "task-
  135.     windows" under WINDOWS and OS/2, etc.).
  136.  
  137.       The SETPORT.COM utility allows to modify the mode of working and the
  138.     initialization of STARCOMM by nominative port, as well as visualizing the
  139.     states of all the serial ports recognized by this driver (when found
  140.     resident in memory...). It also presents the advantage, over the
  141.     command-line interfacing offered by STARCOMM.EXE, that it doesn't
  142.     reactivate the default values of the different driver parameters.
  143.  
  144.       The TESTSTAR.EXE demonstration (source *.PAS) permits to visualize
  145.     the efficient working of STARCOMM, and permits to test locals serial links
  146.     (TESTSTAR is a multi-ports processus).
  147.       The TERMINAL.COM program (developed in C) demonstrates the utilization
  148.     of STARCOMM when loaded in its DEVICE DRIVER mode. It creates a communica-
  149.     -tion active on one channel at a time (it is a simple TTY emulator...).
  150.  
  151.       The REMOTE.EXE utility allows you to exploit a second IBM computer
  152.     from a computer called "local". The "local" IBM then acts like the normal
  153.     console of the distant IBM (called the "REMOTE" !). It is a small
  154.     application gracefully offered with SERIAL PORTS MANAGER in order to give
  155.     an example of what this package can do for you.
  156.  
  157.       The "EXISTENCE" of a port answers to the double following condition:
  158.     the address that it wants to use correspond to a physically present UART,
  159.     AND the IRQ it is assigned to could be installed (ATTENTION: if an other
  160.     program comes to reroute this IRQ after the installation of STARCOMM, the
  161.     port will be un-usefull to establish any serial link to the means of
  162.     STARCOMM whereas the port will always remain "EXISTING", and this until
  163.     restitution of our vector by this other application...).
  164.       A port is said "OPENED" when the electric logical signals of the PC
  165.     are set in order to activate the interrupts that are physically going
  166.     to allow a completely functional link. Otherwise, this port will be
  167.     said "CLOSED" !
  168.  
  169.                                                                         2
  170.  
  171.  
  172.   I  - Functional features of STARCOMM:
  173.   ═════════════════════════════════════
  174.     ■ STARCOMM.EXE could be loaded from the DOS prompt (like any standard
  175.   program) or from the CONFIG.SYS (DEVICE=STARCOMM.EXE...).
  176.  
  177.     ■ In order to get an information page and a brief help, use the "?"
  178.   character (the "/" character is not compulsory):
  179.                           x> STARCOMM /?
  180.  
  181.     ■ ErrorLevel codes returned by the installation module in BIOS mode:
  182.           0 --> No error: requested action correctly done,
  183.           1 --> End of program on impossibility to un-install.
  184.  
  185.     ■ This driver manages, under hardware interrupt(s), the serial ports COM1:
  186.   to COM8: of compatible PC/AT in using buffers in RAM memory. There are
  187.   1 receipt buffer AND 1 transmit buffer for each port recognized at the
  188.   installation time (except orders making a more explicit limitation in the
  189.   command-line). The receipt buffer is 1 kilo-byte in size, whereas the
  190.   transmit buffer is reduced to 1/2 kilo-byte by default. It is possible to
  191.   fix each buffer size between ½ and 55 kilo-bytes. It is also possible,
  192.   for each application, to define its own buffers of any sizes in the limit
  193.   of ONE segment (of the CONVENTIONAL MEMORY) for each serial port used:
  194.   every acknowledged port can thus dispose of up to 64 Kilo-byte of I/O
  195.   buffers if needed !
  196.  
  197.     ■ STARCOMM manages asynchronous communication ports in exploiting the
  198.   availables UART on the IBM. These UART could be a 8250, 16450 or 16550
  199.   type. If an 16550 UART is available on a given serial port, its FIFO mode
  200.   is automatically exploited (excepted if forbidden from the command-line !).
  201.  
  202.     ■ The Request_To_Send(RTS)/Clear_To_Send(CTS) and Data_Terminal_Ready
  203.   (DTR)/Data_Set_Ready(DSR) signals can be managed by the STARCOMM communi-
  204.   cation processes, as well as RI, DCD and OUT1 ! The software hand-shaking
  205.   Xon/Xoff is also acknowledged, and can be activated and dis activated, as
  206.   can be RTS/CTS and DTR/DSR. This can be ordered from the DOS prompt, or
  207.   using the software interrupt giving access to the serial driver functions
  208.   (Int 14h). The hexa. codes to use for Xon and Xoff can be define as needed.
  209.  
  210.     ■ All group of 10 consecutives received errors provokes a complete
  211.   initialization of the controller associated to the serial port used, this to
  212.   avoid any possible interference with any other programs reaching the port
  213.   in the local machine. To this effect also, the BIOS software interrupt 14h
  214.   is filtered by STARCOMM (case of the programs using the serial ports via the
  215.   BIOS: in this case,they provoke a communication format resetting to the level
  216.   of our driver). As a consequence, for example, this implies that any
  217.   initialization made using the DOS "MODE" utility will be acknowledged by the
  218.   STARCOMM driver...
  219.   Remarks:     1- Any initialization request on an inhibited port (Cf. III-3)
  220.      will be rejected by our filtering of the BIOS interrupt 14h.
  221.                2- The BIOS variables addressing the UART chips are up-dated by
  222.      the driver. They are reseted in their initial state at the time of the
  223.      STARCOMM uninstallation.
  224.                3- The time-out BIOS variables are not, in any case, altered
  225.      by STARCOMM.
  226.  
  227.                                                                         3
  228.  
  229.  
  230.  
  231.     ■ STARCOMM filters the basics interrupt 14H BIOS functions: it redirects
  232.   to the driver any commands sent to an open serial port. From then on, it
  233.   is the addresses and all the technical features of STARCOMM that are stakes
  234.   to disposition of ALL the DOS comm. applications based on the BIOS level.
  235.   These applications will therefore have their performances distinctly
  236.   improved, and they will be able to gain the mapping benefit offered by
  237.   STARCOMM.EXE (see "/A..." and "/I..." options...).
  238.     Example: suppose D_COMM.EXE only uses the COM1 (via the BIOS), and your
  239.   modem is installed as a COM3:, using the IRQ 7.
  240.            execute:
  241.                    x> STARCOMM /A1=03E8 /I1=7
  242.                    x> SETPORT COM1: /O /Inform
  243.            ...and then:
  244.                    x> D_COMM              And that's all !...
  245.     REM: Thanks to the "/EB" option that activate the STARCOMM BIOS emulator,
  246.   it could be avoided having to open the port to use (Cf. ANNEX C) !
  247.   However, no buffer will be used by the driver in this last case.
  248.  
  249.     ■ ATTENTION: After the installation and/or after any parameter(s)
  250.   modification from the driver command-line, the ports are reseted in their
  251.   UNACTIVE state (except using option "/O..."). Any application wanting to use
  252.   port(s) in order to communicate will therefore have to initially take
  253.   carefulness of reopening the appropriate(s) port(s)...
  254.  
  255.     ■ STARCOMM can generate 2 kinds of transmitting: a slow transmission (18
  256.   bytes by seconds), and a fast transmission (continuous flow only limited by
  257.   the capacity of the UART to transcode the bytes). On 8 simultaneous opened
  258.   ports, each one could dispose of its own transmitting mode. The choice of
  259.   the mode to activate only depends on the device with which it is necessary
  260.   to converse. For example, to make a direct local link with a Minitel, it IS
  261.   necessary to activate the slow transmission because this terminal doesn't
  262.   presumably work in an interrupt way: if too much bytes arrives between 2
  263.   Minitel scans, there is overrun, and therefore loss of information to the
  264.   Minitel level. In general, for all device working in a scanning mode, it is
  265.   necessary to activate the slow transmission of STARCOMM (thus creating an
  266.   everage transmission of 18 bytes a second...).
  267.  
  268.     ■ IMPORTANT REMARK ON HARDWARE INTERRUPTS SHARING:
  269.   Only the specials multi-serial ports boards and the IBM-PS/2 computers
  270.   permits several serial ports to share a same IRQ. If you joined several
  271.   ports on a same IRQ with any other material (PC, XT or AT), know that you
  272.   must NOT open at the same time all these ports. It will then be necessary to
  273.   always open only ONE of these ports at a time for it to be fully working !
  274.     (! THIS IS A HARDWARE LIMITATION NOT SURPASSABLE BY ANY SOFTWARE !)
  275.  
  276.                                                                         4
  277.  
  278.  
  279.  
  280.   II- Respective advantages BETWEEN "BIOS" and "DEVICE DRIVER" installations
  281.   ══════════════════════════════════════════════════════════════════════════
  282.  
  283.       1- Used in the BIOS (T.S.R.) mode:
  284.       ──────────────────────────────────
  285.  
  286.       ■ Uses less RAM memory (the DOS normalized interface doesn't remain
  287.       in RAM memory after the driver installation !).
  288.       ■ Ability to un-install the driver when becoming useless in RAM, without
  289.       having to fully reset the computer;
  290.       ■ Complete relative independence to the operating system, so that:
  291.         . considerable increase on execution speed of the services offered
  292.           by the driver: indeed, the DOS layer being absent in the case of an
  293.           Int 14h, every logical access to the driver corresponds to an unique
  294.           physical call to this driver (where a DOS interface function could
  295.           easily achieve it by at least 4 DOS internals calls !),
  296.         . and absence of any trouble on EOF code (^Z) management that is merely
  297.           unknown to the interrupt 14h.
  298.  
  299.  
  300.  
  301.       2- Used in the DEVICE DRIVER mode:
  302.       ──────────────────────────────────
  303.  
  304.         The driver is here-by known by the DOS. It opens the access to a new
  305.       logical device (referred as "COMM:" by default) to which it is possible
  306.       to access with no more programming using the DOS shell (COPY CON: COMM:)
  307.       OR, with programming, using any computer language (use the DOS standard
  308.       files access functions integrated to all programming languages !).
  309.  
  310.  
  311.  
  312.       3- When using the library (SCLIB.OBJ):
  313.       ──────────────────────────────────────
  314.  
  315.         This serial port driver format is not usable from the DOS prompt.
  316.       It is only usable by the programers in order to integrate the kernel
  317.       of SERIAL PORTS MANAGER directly to their creations,this to avoid any de-
  318.       -pendence between their programs and any external driver if he wants to !
  319.         The application thus developed will only benefit the BIOS mode, with
  320.       the advantages associated (report to part 1-...) PLUS the advantage to
  321.       be able to call the driver services without transitting through the
  322.       interrupt 14h (Cf. STAR-REF.DOC on this...).
  323.         The ability, for each application, to define its own external buffers
  324.       for each serial port negates the fact that the library only integrates
  325.       2 very small buffers for each port by default (1/2 kilo-byte each...).
  326.  
  327.                                                                         5
  328.  
  329.  
  330.  
  331.   III- STARCOMM.EXE COMMAND SYNTAX
  332.   ════════════════════════════════
  333.       STARCOMM.EXE can be loaded as an external driver to the DOS (in its
  334.   "BIOS" mode) OR as a DEVICE DRIVER (thus creating a "character" type file
  335.   named "COMM:" by default).
  336.       The SETPILOT.EXE utility can help you to get in touch with the
  337.   numerous options that STARCOMM.EXE knows !
  338.  
  339.  
  340.  
  341.       1- To load the driver in its T.S.R. BIOS mode:
  342.       ──────────────────────────────────────────────
  343.  
  344.       From the DOS command line (the "prompt"...), just order:
  345. d>[<drive>:][<\path\>]STARCOMM [COM:][speed][,parity][,bits][/<options>]
  346.       The only software interrupt to access the STARCOMM services will
  347.   then be the interruption number 14h.
  348.  
  349.  
  350.  
  351.       2- To load the driver in its DOS DEVICE DRIVER mode:
  352.       ────────────────────────────────────────────────────
  353.  
  354.       Integrate the following order in your CONFIG.SYS:
  355.    DEVICE=[<drive>:][<\path\>] STARCOMM
  356.                     [COMi:][speed][,parity][,bits][/<options>]
  357.       In addition to the interrupt 14h, STARCOMM will thus be also
  358.   accessible by using the DOS interrupt 21h FILES functions;
  359.   and you will even have access to the "COMM:" file at any moment
  360.   from the DOS prompt.
  361.  
  362.                                                                         6
  363.  
  364.  
  365.  
  366.       3- Commands and options known by STARCOMM.EXE:
  367.       ──────────────────────────────────────────────
  368.  
  369.       The initialization format explained below takes effect for
  370.     the whole acknowledged serial ports of the driver.
  371.  
  372.         [COM:]    = Announces the definition of the format initializations.
  373.                     When STARCOMM has been (or is) loaded as a
  374.                     DEVICE DRIVER, specifying COM1: (or COM2:, etc...) allow
  375.                     to orientate the logical file ("COMM:" by default) on the
  376.                     serial port thus specified.
  377.         [speed]   = {110,150,300,600,1200,2400,4800,9600,19200,28800,38400,
  378.                     57600, or 115200} bits a second (9600 by default).
  379.         [,parity] = {N, P, I, T, or R} for 'N' no, 'P' even, 'I' odd,
  380.                     'T' work, or 'R' rest (N by default).
  381.         [,bits]   = {5,6,7 or 8} for a coding on 5,6,7 or 8 bits (8 default).
  382.         [,stop]   = {1 or 2} for 1 or 2 stop-bit(s) (1 by default).
  383.  
  384.       The working-control options recognized by STARCOMM are:
  385.  
  386.         [/A<N>=<address>[,<N>=<address>[,...]] =
  387.                     Use <address> (in hexa.) for the port <N>, then... For
  388.                     each specification, give the address of the first associate
  389.                     UART register for the indicated port number. At this
  390.                     address, if no UART is detected, the associate port will
  391.                     not be functional and treated as INEXISTANT by the driver.
  392.                     Every specified address must be made of 4 numbers: write
  393.                     /A3=0370 and not /A3=370 !...
  394.                     Note that in permuting some addresses between different
  395.                     existing ports, you could redirect the standard DOS ports
  396.                     (attention to the IRQ linkage !...).
  397.                     ATTENTION: This option is unknown for the ports of which
  398.                     the IRQ seems to be rerouted by a program loaded after
  399.                     STARCOMM.EXE (in order to respect the consistency of the
  400.                     IRQ chain in the computer !).
  401.         [/I<N>=<num>[,...]] = Use the <I>RQ number <num> for COM<N>:.
  402.                     Only the IRQ 2, 3, 4, 5, 7, 10, 11, 12 and 15 are admitted.
  403.                     Any indicating sequence can be used with no importance. The
  404.                     erroneous or forbidden indications will be unknown. If a
  405.                     program installed after STARCOMM.EXE has rerouted some
  406.                     interrupts used by STARCOMM, it won't be possible to modify
  407.                     these IRQ for the associated port(s), and this until
  408.                     un-installation of that post-loaded program. The Order is
  409.                     then unknown (no apparition of new IRQ number in the driver
  410.                     message !). In case of repetitions for a same port, only
  411.                     the last specification will be considered as consistant.
  412.                     REM: Don't use IRQ2 on AT and PS/2, this IRQ being
  413.                          reserved to a second 8259 (interrupt controller)
  414.                          installed in cascade on these machines ! Don't use
  415.                          IRQ5 on the XT machines (providing hard disks). At the
  416.                          time of the installation (as well as at the time of
  417.                          any parameters modifications), a demand for IRQ2
  418.                          on an AT or a PS/2 or a demand for IRQ5 on an XT will
  419.                          be rejected. The IRQ10 and above could not be accepted
  420.                          on AT or PS/2 equivalents !
  421.  
  422.                                                                         7
  423.  
  424.  
  425.  
  426.         [/G<num>[,<num>...]] = I<G>nore the serial ports <num>. Permit
  427.                     the cohabitation of STARCOMM with other drivers working on
  428.                     serial port(s) too (we can explicitly dedicate them one
  429.                     or several ports: report to the paragraph IV about
  430.                     this topic...). This option also permits to manage the
  431.                     conflictual problem of sharing hardware interrupts on the
  432.                     materials that don't support these sharings (ex: if you
  433.                     have a COM2: and a COM4: both linked to the IRQ3 on an AT,
  434.                     forbid either before executing TESTSTAR.EXE; because this
  435.                     program opens all the marked present ports, it would result
  436.                     of it, in the contrary case, a conflict that would block
  437.                     either port COM2: or COM4:, in truth the two !...).
  438.                     Forbidding the access to all the ports won't forbid to load
  439.                     STARCOMM.EXE; but there won't be any possible communication
  440.                     in this case (except utilization of the function 0Ah of the
  441.                     services interrupt 14h...) !
  442.                     ATTENTION: This option is never USEFUL when used to
  443.                     modify an already RAM-installed STARCOMM setup whereas it
  444.                     tries to act on a port of which the interrupt seems to be
  445.                     redirected by an other application than STARCOMM ! Allowing
  446.                     such a maneuver would set the logical existance statutes of
  447.                     the serial ports unconsistant with the real state of the
  448.                     machine's vectors diverted by the asynchronous ports
  449.                     driver; and then, some declared "EXISTING" ports could
  450.                     not be functional. Besides, it would become impossible to
  451.                     uninstall STARCOMM.EXE, even after all competitor
  452.                     applications (to the level of the used interrupts...) have
  453.                     been themselves uninstalled !
  454.         [/V<n°>[,<n°>,...]] = Locks the speed for the specified comm ports.
  455.                     Any new speed would be substituted by the locked one !
  456.         [/F<n°>[,<n°>,...]] = Locks the comm <F>ormat. Same as "/S"...
  457.         [/EL<num>[,<num>...]] = s<E>nd s<L>ow on the port <num>. Permit
  458.                     to activate the transmission in its reduced flow for the
  459.                     specified ports. It will be the clock interrupt (and not
  460.                     the UART one) that will order them to send out some bytes
  461.                     contained in the transmit buffers of the specified ports.
  462.                     It will therefore be 18 bytes a second (maximum...) that
  463.                     will be transmitted toward the outside.
  464.         [/O<num>[,<num>...]] = <O>pen the serial ports <num> as soon as
  465.                     the installation is finished. Using the device attached to
  466.                     "COM<num>:" is then possible as soon as the driver is
  467.                     installed.
  468.         [/EB]       <E>mulator <B>IOS permit not to redirect the calls of the
  469.                     interrupt functions 1 to 5 toward the original BIOS int.
  470.                     14h. A BIOS emulation code is then activated. It presents
  471.                     the advantage of using the addresses, the time-out values,
  472.                     and the respect of the hardware hand-shaking signals that
  473.                     are all imposed to the STARCOMM driver. This code executes
  474.                     its inputs/outputs directly on the physical specified
  475.                     port (buffers are not used...).
  476.  
  477.                                                                         8
  478.  
  479.  
  480.  
  481.       Each of the following options take value for all the ports known as
  482.     existant by the installed driver. In order to act only on one port, it is
  483.     necessary to act in using the software interrupt of the driver interface
  484.     (this results of the will to preserve the driver installation process
  485.     from being too complex; use SETPORT.COM in order to control the ports
  486.     separately from one another...).
  487.  
  488.         [/PC]     = Knows the used machine as a <PC>. The IRQ2, 3, 4, 5 and 7
  489.                     will be all authorized for utilization. This command is to
  490.                     reserve for the old computers (BIOS of 1985 and before
  491.                     generally) or for those that declares of erroneous way
  492.                     (compatible PC to the BIOS little compatible (!), or
  493.                     advanced machine "under-configured": ex. an XT without
  494.                     hard disk --> its IRQ5 is therefore free !...).
  495.         [/XT]     = Knows the used machine as an <XT>. The IRQ2, 3, 4 and 7
  496.                     will be the only IRQ authorized.
  497.         [/AT]     = Knows the used machine as an <AT>. The IRQ3, 4, 5, 7, 10,
  498.                     11, 12 and 15 will be the only authorized.
  499.         [/PF]     = Leave <P>orts <F>IFOs un-activated on the found 16550.
  500.                     This option surpasses the following one.
  501.         [/F=<Nb. of bytes>] = Number of bytes of the 16550 UART buffers to use
  502.                     at the transmit process level. "<Nb. of bytes>" must be
  503.                     included between 2 and 15, otherwise the option is merely
  504.                     unknown, and the default value of 14 is then used.
  505.                     REMARKS: Indeed,16 bytes do constitute this physical buffer
  506.                     of the 16550 UART. STARCOMM only allows a maximum of 15
  507.                     because it seems that some kinds of these UART loses
  508.                     some informations if the software tries to benefit from the
  509.                     transmit buffer in its entirety !
  510.                       In receipt, the FIFO is always exploited on 14 bytes
  511.                     (the "trigger level" is frozen to 14 by STARCOMM). It is
  512.                     the maximal value authorized by the hardware !
  513.         [/AI]     = <A>utoscan <I>RQ... The driver automatically research on
  514.                     which IRQ lines are installed the serial ports found at the
  515.                     specified addresses. The "/I=..." option has priority on
  516.                     this "/AI" option that can reveal itself not reliable on
  517.                     some hardware (particular modems OR very fast computers...)
  518.                     NEVER USE OPTION "/AI" UNDER WINDOWS OR THE OPERATING
  519.                     SYSTEM WILL CRASH ! ! ! .
  520.         [/S[=<hexa_code>]] = Activate the <S>ubstitution process of the bytes
  521.                     specified as deficient upon receipt by the specified code.
  522.                     This code could be specified in the room of term
  523.                     <hexa_code>. The default value used is 0FEh.
  524.                     /S=NULL (or "/S=N" because only the first letter of
  525.                     "Null" is really necessary !) permit to order the
  526.                     voluntary loss of any erroneous byte received.
  527.         [/K[=<code_hexa>]] = Activate the function of representing, in the
  528.                     receive buffers, the received BREAKs. <code_hexa> is the
  529.                     code that will represents the BREAKs. /K without any more
  530.                     specification will force the use of 03h to represent a
  531.                     BREAK in the buffer. /K=Null stops this function.
  532.  
  533.                                                                         9
  534.  
  535.  
  536.  
  537.         [/<nb>] = Permits to limit the number of buffers pairs (transmit/
  538.                     receive) that the driver could open in RAM. By default,
  539.                     STARCOMM reserves 1 pair of buffers by port physically
  540.                     acknowledged during the installation process.
  541.                     Attention: limiting the number of buffers pairs also
  542.                     limits the number of serial ports that it will be possible
  543.                     to open at the same time ! <nb> is limited between 1 (at
  544.                     least 1 buffer to create !) and 8 (i.e. the biggest
  545.                     possible number of usable ports). This option could only
  546.                     be acknowledged by the installation process of STARCOMM.
  547.                     Otherwise, it is ignored, and the correspondent message
  548.                     displayed will only be a recall of the number of buffers
  549.                     the driver knows it can create in RAM.
  550.                     REMARK: In order to save room in memory, it is better
  551.                     to load "STARCOMM/1" when it is going to be used with
  552.                     mono-link applications (some emulators generally...),
  553.                     whereas several serial ports exists on the used machine.
  554.         [/BR=<size>] = Specification of the memory size to allocate to the
  555.                     <R>eceipt <B>uffer(s). <size> must be included between
  556.                     ½ and 55 Ko., and won't be acknowledged but at the time
  557.                     of the first installation of driver in memory. Thereafter,
  558.                     the driver will satisfy of recalling the buffers used
  559.                     due to the initial installation. In order to modify
  560.                     the size of the receive buffers, uninstall then install
  561.                     again the driver with a new <size> value !
  562.         [/BE=<size>] = Specification of the memory size to allocate to the
  563.                     s<E>nd <B>uffer(s). The notes on the reach of this option
  564.                     are identicals to those of the option above. NOTE that if
  565.                     the added sizes of all the buffers to create passes the re-
  566.                     maining free room in the driver segment, the sizes of these
  567.                     buffers will be automatically reduced in order to contain
  568.                     the buffers in the limit of this segment ! The sizes
  569.                     finally restrained will always be a multiple of 1024 bytes.
  570.         [/R=<tps>] = Definition of the time limit to the tip of which the
  571.                     impossibility of <R>eceiving must abort on a time-out
  572.                     error... The <tps> parameter, that must be included
  573.                     between 1 and 255, explicit the maximum number of half a
  574.                     second to wait before generation of a receiving time-out.
  575.         [/E=<tps>] = Definition of the time limit to the tip of which the
  576.                     impossibility of s<E>nding must abort on a time-out
  577.                     error... The <tps> parameter, that must be included
  578.                     between 1 and 255, explicit the maximum number of half a
  579.                     second to wait before generation of a transmitting
  580.                     time-out.
  581.         [/LC]     = "<L>ocal <C>lear_to_send": The local site must recognize
  582.                     the RTS/CTS hand-shaking: it checks CTS=TRUE before any
  583.                     send, but it sets RTS in order to control the distant site
  584.                     that is supposed deaf to this signal.
  585.         [/EC]     = "r<E>mote <C>lear_to_send": The distant site is supposed to
  586.                     check its CTS signal before its TRANSMITTING, this to
  587.                     control the speed of its transmit flow upon the order of
  588.                     the local site; however, the local site must not interpret
  589.                     the local CTS before its own TRANSMITTING. The local site
  590.                     sets RTS in order to up-date the CTS signal of the distant
  591.                     site.
  592.  
  593.                                                                        10
  594.  
  595.  
  596.  
  597.         [/BC]     = Use the RTS/CTS hardware hand-shaking in bilateral.
  598.                     (i.e. "<B>ilateral <C>lear_to_send")
  599.         [/LD]     = "<L>ocal <D>ata_terminal_ready": The local site must
  600.                     recognize the DTR/DSR hand-shaking: it checks DSR=TRUE
  601.                     before any send, but it sets DTR in order to control the
  602.                     distant site that is supposed deaf to this signal.
  603.         [/ED]     = "r<E>mote <D>ata_terminal_ready": The distant site is
  604.                     supposed to check its DSR signal before TRANSMITTING,
  605.                     this to control the speed of its transmit flow upon the
  606.                     order of local site; however, the local site must not
  607.                     interpret the local DSR before its own TRANSMITTING. The
  608.                     local site sets DTR in order to up-date the DSR signal
  609.                     of the distant site.
  610.         [/BD]     = Use the DTR/DSR hardware hand-shaking in bilateral.
  611.                     (i.e. "<B>ilateral <D>ata_set_ready").
  612.         [/RI]     = The local site must check that RI=TRUE before TRANSMITTING.
  613.                     REMARK: Check the remark below !
  614.         [/CD]     = The local site must check that DCD=TRUE before TRANSMITTING.
  615.                     REMARK: In fact, it goes of it precisely in the same way
  616.                     for the options [/LC] (with the CTS signal) and [/LD]
  617.                     (with DSR) that are explained,higher, in the context of the
  618.                     normalized protocols RTS/CTS and DTR/DSR. (There is no
  619.                     obligation in the act that local CTS is hardback to remote
  620.                     RTS; or that local DSR has connected to distant DTR !...).
  621.         [/OT]     = The local site set OUT1=FALSE as soon as it is not able
  622.                     to receive anymore data. Otherwise, it sets this signal
  623.                     to TRUE.
  624.                     Analogous REMARK to the previous for [/EC] (RTS signal)
  625.                     and [/ED] (DTR signal).
  626.         [/LX]     = "<L>ocal <X>on/Xoff": The local site knows the Xon/Xoff
  627.                     hand-shaking. But no Xon or Xoff code will be transmitted
  628.                     toward the distant site, supposed deaf to this protocol.
  629.         [/EX]     = "r<E>mote <X>on/Xoff": The distant site is supposed to
  630.                     recognize Xon/Xoff to manage its transmissions on order
  631.                     of the local site; however, the local site doesn't
  632.                     interpret the Xon and Xoff codes that it receives, but
  633.                     must manage them like any other data.
  634.         [/BX]     = Use the software Xon/Xoff hand-shaking in bilateral.
  635.                     (i.e. "<B>ilateral <X>on/Xoff").
  636.         [/X=[<Xon>][,< Xoff>]] = Use the hexa. values specified for
  637.                     the Xon codes (before the comma) and Xoff (after the
  638.                     comma). The values kept by default are 11h (for Xon) and
  639.                     13h (for Xoff). Every hexa. value specified must be
  640.                     made of 2 numbers included between the values 0 and F !
  641.  
  642.       The following option doesn't have any sense except when STARCOMM is used
  643.     as a DEVICE DRIVER:
  644.         [/ND=xxxxxxxx] = Logical <N>ame of the <D>evice. Permits to assign a
  645.                     different name than "COMM:" to the unit created by STARCOMM
  646.                     when it is loaded from the CONFIG.SYS. It is possible to
  647.                     define this name with this option at any moment using
  648.                     STARCOMM.EXE from the DOS prompt, under the simple
  649.                     condition that STARCOMM resides in RAM as a DOS DEVICE
  650.                     DRIVER. Only the characters 'A'..'Z' and '0.'..'9' are
  651.                     admitted in order to constitute the logical name of
  652.                     STARCOMM used as a DEVICE DRIVER ! This name could be
  653.                     constituted of a number of any active characters included
  654.                     between 2 and 8.
  655.  
  656.                                                                        11
  657.  
  658.  
  659.  
  660.       The following option is special to a specific type of multi-comm boards:
  661.  
  662.         [/AP<adress>=<val>] = The <val> byte (hexa.) is sent to the <adress>
  663.                     adresse (hexa.). This permit to activate more than 2 serial
  664.                     ports on specifics multi-ports asynchronous I/O boards.
  665.                     <adress> must be 4 bytes length, whereas <val> must be 2...
  666.                     For example:  /AP03FF=80 is OK,   /AP3FF,80 is NOT !
  667.                     This option may be used more than once (always with the
  668.                     same adress or with differents adresses each time...).
  669.                     ATTENTION: There is no check on the neutral and not dange-
  670.                     -rous type of accessing the specified I/O adress...
  671.                     Only use this option IF YOU KNOW WHAT YOU ARE DOING ! ...
  672.  
  673.       The 2 following options surpass and nullify all the others options;
  674.     on the other hand, they are not executable by STARCOMM when it is used
  675.     as a DEVICE DRIVER:
  676.  
  677.         [/D]      = <D>esactivate AND UNINSTALL the driver from the RAM memory.
  678.                     If a program executed after STARCOMM rerouted at least one
  679.                     of the STARCOMM used interrupts (anyone, hard OR soft...)
  680.                     this option won't be treated. A message of impossibility
  681.                     will appear, and it will reacts the same if STARCOMM
  682.                     is used as a DEVICE DRIVER, or if one (or several)
  683.                     program(s) forbade STARCOMM to leave the memory.
  684.         [/?]      = Demand a display of the helping and informations page.
  685.                     This page will be displayed only if STARCOMM is executed
  686.                     from the DOS prompt.
  687.  
  688.       Finally, the [/PM] (No <M>essage) option permits to forbid the writing
  689.     of the initializations control messages that finally took place. This
  690.     option is especially usefull when we want to avoid the proliferation of the
  691.     messages at the boot time (loading of STARCOMM from the CONFIG.SYS or the
  692.     AUTOEXEC.BAT) ! Only the essential messages of success to install or of
  693.     impossibility to install (or to uninstall) could appear despite this "/PM"
  694.     option. To the contrary, the [/PA[=<length>]] option permits to force
  695.     a <PA>use in order to allow the reading of the driver installation
  696.     report. (<length> admitted from 0 to 60 seconds, 0 for an infinite
  697.     expectation of hitting a key. 0 is the default used value...).
  698.  
  699.       NOTE that, even though STARCOMM is loaded as a DEVICE DRIVER, it
  700.     remains possible to execute STARCOMM.EXE at any time from the DOS prompt
  701.     in order to command somme new initializations or new working modes
  702.     to the driver installed in memory. All the options, "/D" excluded,
  703.     are perfectly usable in this case.
  704.  
  705.       All these options could be enumerated in an any order.
  706.  
  707.       It is possible to modify the status of the driver thanks to these
  708.     commands even though it is already installed in RAM memory.
  709.  
  710.       The spaces introduced in a command-line don't have any particular
  711.     meaning to the "eyes" of the commands sensor inserted in the serial
  712.     driver. They will always be unknown: you can therefore use spaces at your
  713.     own discretion in order to give your line a more explicit meaning
  714.     to YOUR eyes.
  715.  
  716.       A request for an helping page provokes the interruption of the program
  717.     immediately after the information is displayed: it will be necessary to
  718.     execute again the driver with the needed options (and, this time, without
  719.     the "/?" option) in order to get the appropriate requested installation.
  720.  
  721.                                                                        12
  722.  
  723.  
  724.  
  725.       If some contradictory requests are enumerated,only the last valid request
  726.     of the concerned option will be restraint. Besides, it is always the last
  727.     valid declared option (in a given type) that will be served and not its
  728.     previous apparitions in the command-line. For example, "/I1=5,2=3 /I2=7"
  729.     will provoke the utilization of IRQ5 for the COM1: AND of IRQ7 for the
  730.     COM2: !... Exception: the command options of the hand-shaking controls
  731.     activity are cumulatives. For example, "/LX/EX" does have the same effect
  732.     than "/BX".
  733.  
  734.       The values kept by default are, for each option:
  735.          Addresses--> COM1: 03F8 COM2: 02F8 COM3: 03E8 COM4: 02E8
  736.                       COM5: 01A8 COM6: 01E8 COM7: 01F8 COM8: 02A8 on PC, XT,
  737.                 AT--> COM1: 03F8 COM2: 02F8 COM3: 3220 COM4: 3228
  738.                       COM5: 4220 COM6: 4228 COM7: 5220 COM8: 5228 on PS/ 2
  739.                IRQ--> COM1: 4 COM2: 3 COM3: 4 COM4: 3
  740.                       COM5: 3 COM6: 3 COM7: 3 COM8: 3
  741.                       on PC, XT, AT
  742.                       except COM3: 3 (instead of 4) on a PS/ 2
  743.          Speed/Format                 --> 9600 bds, N81, fully UN-locked...
  744.          Ports to be unaware of       --> Not any one.
  745.          BIOS Emulator                --> Inactive.
  746.          Utilization of the FIFO      --> YES with 14 bytes.
  747.          Substitution process         --> Inactive (working in Smode0).
  748.          Receipt buffer               --> 1 kilo-byte.
  749.          Transmit buffer              --> 1/2 kilo-byte.
  750.          Time-out in receipt          --> 10 seconds.
  751.          Time-out in transmit         --> 10 seconds.
  752.          Activity of the hand-shaking --> All inactive (hard and software).
  753.          Codes Xon and Xoff           --> Xon=11h and Xoff=13h.
  754.          Name of DEVICE               --> COMM:
  755.          Physical serial port accessed by COMM:  --> COM1:
  756.       When an option provided to STARCOMM.EXE is not correct, it uses the
  757.     default value of the parameter associated to the deficient control, but
  758.     it doesn't write any message of specific mistake. Just by checking all the
  759.     inits messages (except utilization of "/PM" !) you can assure yourself
  760.     of your command(s) success...
  761.  
  762.       STARCOMM.EXE systematically disactivates the "user interrupt" functions
  763.     on all the serial ports, as well as the "error management function" of the
  764.     interrupt 14h when it is executed. The BIOS emulator is always DISACTIVATED
  765.     too by default.
  766.  
  767.                                                                        13
  768.  
  769.  
  770.  
  771.   IV- USING SPECIFIC(S) DEVICE(S) ON SERIAL PORT(S)
  772.   ═════════════════════════════════════════════════
  773.  
  774.       1- Using a mouse in 'competition' with STARCOMM:
  775.       ────────────────────────────────────────────────
  776.       ■ Install the serial driver with the parameters you really need,
  777.     enumerated in addition to the option "/G<i>" (where 'i' gives the number
  778.     of the port to reserve for the mouse).
  779.       ■ Install MOUSE.COM on the serial port your mouse is attached to.
  780.       ■ In case of requiring, you could use STARCOMM.EXE all over again in
  781.     order to modify the installation parameters of this driver, but ALWAYS
  782.     INCLUDING the "/G<i>" option in your command-line !
  783.       Indications: This is due to the dynamic management of the environment
  784.         practiced by the driver. In the present case of modifications of the
  785.         inits, whereas an other driver set intervenes (the one of the mouse),
  786.         it makes necessary to protect the inits associated to this other
  787.         driver. This is made by forbidding to our driver the access to
  788.         the port(s) dedicated to the other(s) driver(s). In order to
  789.         interrupt the utilization of the mouse and recover its port to the
  790.         level of our driver, it is sufficient to execute STARCOMM.EXE all
  791.         over again, SUPPRESSING the "/G<i>" option.
  792.         ATTENTION: The most recents mouse drivers MUST be uninstalled because
  793.         they are able to recover their IRQ and inits. dynamically !...
  794.  
  795.  
  796.  
  797.       2- Accessing to an internal or external modem:
  798.       ──────────────────────────────────────────────
  799.       The STARCOMM driver of SERIAL PORTS MANAGER permits to reach any modem
  800.     plugged in any of the serial ports numbered from COM1: to COM8:.
  801.     It is sufficient, for that, to normally install the driver in memory.
  802.       REM: In order to send some specific commands to the modem connected on
  803.       the serial port of your choice, uses the function 1Ah of STARCOMM.
  804.       (i.e., in Pascal and in C, the 'WriteCmde' procedure).
  805.       ATTENTION: When this function 1Ah uses the DTR signal in order to
  806.       indicate the modem that it is going to receive a control, and not a
  807.       sequence of bytes to send on the line, it is necessary that the modem
  808.       receives (before BEING connected) an order indicating not to interpret
  809.       the DTR change to 0 as a connect aborting request ! (For the
  810.       Compatible Hayes modem, the command is AT&D1...). The alternative
  811.       consists in using the function 1Ah with BH=0 (=> DTR no used), and in
  812.       including the prefix of associated command to the modem ("+" by default
  813.       for the Compatible Hayes modems). Report to MODEM.DOC and its examples
  814.       (in PASCAL and C) to this topic.
  815.  
  816.  
  817.  
  818.       3- All type of devices knowing a protocol:
  819.       ──────────────────────────────────────────
  820.       It goes of it precisely like for the modems.
  821.       Question: Particular case as examples ?
  822.       Answer: The MINITEL with its TeleTex commands,
  823.               the serial printers, ...
  824.               and a lot of other materials (...from laboratories generally !)
  825.  
  826.                                                                        14
  827.  
  828.  
  829.  
  830.   V- SETPORT.COM UTILITY
  831.   ═══════════════════════
  832.       The STARCOMM installation module doesn't permit a selective
  833.   initialization between the various serial ports acknowledged by the driver.
  834.   The reach is global to all the ports supported by the driver... SETPORT
  835.   gives this selective interfacing. Further more, the only functional
  836.   parameters of STARCOMM that SETPORT modifies are those explicitly (and
  837.   correctly) specified in the command-line ! There is not any systematic ini-
  838.   -tialization of all the working variables to their default values like the
  839.   STARCOMM installation/modification module does. Finally, in case of
  840.   contradictory options, it is always the last stated option that carries it
  841.   away, except for the hand-shaking command options that are cumulatives
  842.   (/LX/EX will have the same effect than /BX for example...).
  843.       SETPORT.COM uses the interfacing functions of the driver (interrupt 14h)
  844.   in order to communicate with it and thus to modify its working modes and
  845.   status. This permits, therefore, to demonstrate the good working of these
  846.   service functions of the STARCOMM.EXE serial port driver.
  847.  
  848.  
  849.  
  850.       1- Syntax of SETPORT.COM:
  851.       ─────────────────────────
  852.  
  853.       A NOT EMPTY command-line is COMPULSORY. The "/?" command option
  854.     recalls an helping message on the available options, and interrupts the
  855.     utility (all other controls associated to "/?" are ignored):
  856.  d>[<drive>:][<\path\>]SETPORT [<parameter(COM1)>][<parameter(COMi)>...][/I]
  857.     where [COMi:][,<speed>][,<parity>][,<bits>][,<stop>] [/<options>]
  858.     constitutes every group [<parameter(COMi)>] (any space forbidden !).
  859.  
  860.       If STARCOMM is NOT found available in memory, SETPORT.COM protests by an
  861.     error message and immediately stops.
  862.  
  863.       If STARCOMM is available and that SETPORT received no command to
  864.     execute, it presents some lines explaining the utility of this program.
  865.     IF all the commands given to SETPORT are unvalid, there will be a
  866.     specific error message; but if at least one command is correct, the
  867.     erroneous command(s) will be merely unknown(s) while the correct(s)
  868.     command(s) will be served...
  869.  
  870.  
  871.  
  872.       2- Command options of SETPORT.COM:
  873.       ──────────────────────────────────
  874.  
  875.       The 8 following options have a global reach because they don't concern
  876.     a port in particular:
  877.  
  878.       [/Inform] (or [/I]) = display an array on the status of the serial
  879.                  ports acknowledged as "existing" (Cf. the introduction of
  880.                  this document). Only the first letter of word "Inform"
  881.                  is sufficient for that option to be acknowledged (ex:
  882.                  "/Infos" will be also admitted !). The written array allows
  883.                  you to check the good acceptance of your commands.
  884.       [/8]     = Display the infos. on the 8 ports.
  885.       [/PC| XT| AT] = Force the recognition of the material architecture.
  886.                  (Cf. same options made more explicit for STARCOMM.EXE).
  887.       [/EB]    = Activate the <E>mulator of the original comm. <B>ios.
  888.                  (report to the explanation of the option "/EB" in page 7
  889.                  of present document...).
  890.  
  891.                                                                        15
  892.  
  893.       [/PEB]   = <P>lease, set <E>mulation of original Comm. <B>ios OFF...
  894.                  (that is: desactivation of the BIOS emulator !)
  895.       [/COMM=x]= Makes to point the logical port created by STARCOMM (when
  896.                  it is loaded as a DEVICE DRIVER) on the specified serial port
  897.                  (/COMM=2 will make to use the COM2: by the DEVICE...).
  898.  
  899.       The following options don't make any sense but when they constitute a
  900.     group clearly identified (a group concerns 1 port identified by "COMi":,
  901.     and it doesn't contain ANY space !):
  902.  
  903.       [COMi:]  = Announces the definition of the format initializations for the
  904.                  serial port number i (i from 1 to 8 in order to designate
  905.                  from COM1: to COM8:).
  906.       [speed]  = {110,150,300,600,1200,2400,4800,9600,19200,28800,38400,57600,
  907.                  or 115200} bits by second (9600 by default).
  908.       [,parity]= {N, P, I, T, or R} for 'N' no, 'P' even, 'I' odd, 'T' work,
  909.                  or 'R' rest (N by default).
  910.       [,bits]  = {5,6,7 or 8} for a coding on 5, 6, 7 or 8 bits (8 by default).
  911.       [,stop]  = {1 or 2} for 1 or 2 stop-bit(s) (1 by default).
  912.       [/L-]    = Where "-" worth from 0 to 3: L0 makes a complet unlocking,
  913.                  L1 sets the speed locking, L2 the format locking, and L3
  914.                  locks the speed AND the format for the specified port...
  915.                  Notice that SETPORT.COM (like STARCOMM.EXE) doesn't
  916.                  take care of these locking: it may change any speed
  917.                  and format for any port at any time !
  918.       [/A=xxxx]= Definite a new address (HEXA) to associate to the port.
  919.       [/I=x]   = Definite a new IRQ to use (2 to 5, 7, 10 to 12, or 15).
  920.       [/AI]    = <A>utomatic <I>RQ research of IRQ associated to the ports.
  921.       [/G]     = Forbade the access to the port: it then becomes INEXISTANT.
  922.                  This option could not be executed if the IRQ associated
  923.                  to the concerned port was captured by a program executed
  924.                  after STARCOMM.
  925.       [/PG]    = Permits (if possible) the access to the port that becomes
  926.                  existing again (same remark than for "/G" on the IRQ).
  927.       [/PF]    = <P>ort <F>IFO: if the port's UART is a 16550, it will
  928.                  be used in its 8250 emulation mode. Useful for some (old)
  929.                  PS/2 that uses some buggies 16550-A !
  930.       [/F=xx]  = Size of FIFO: 0, or 2 to 15 bytes. "/F=0" is equivalent
  931.                  to "/PF" (see previous...).
  932.       ATTENTION: The options /A /L /AL /PF and /F closes the port by
  933.                  authority !
  934.       [/EL]    = Activate the s<L>ow transmits.
  935.       [/ER]    = Activate the <R>apid (fast) s<E>nds (transmits).
  936.       [/PS]    = No <S>ubstitutions of the bytes received with an error
  937.                  signalled on their transmission.
  938.       [/S]     = Activate the <S>ubstitution of the bytes received with
  939.                  an error by the code 0FEh (the '■' character...).
  940.       [/S=Null]= <S>ubstitutions by the empties: all erroneous byte in
  941.                  receipt is not placed in the receipt buffer.
  942.       [/S=xx]  = <S>ubstitutions by the HEXA code xx.
  943.       [/K=xx]  = For each Brea<K> received, make the xx HEXA code appearing
  944.                  in the receipt buffer. /K=Null stops this function. /K
  945.                  (alone) will activate it with the standard value of 03h...
  946.       [/R=xxx] = Time-out <R>ecept after xxx half a second.
  947.       [/E=xxx] = Time-out s<E>nd after xxx half a second.
  948.       [/NC]    = Stop the RTS/<C>TS protocol.
  949.       [/LC]    = Activate the <L>ocal hand-shaking by RTS/<C>TS.
  950.       [/EC]    = Activate the r<E>mote hand-shaking by RTS/<C>TS.
  951.       [/BC]    = Activate RTS/<C>TS in <B>ilateral working.
  952.       [/ND]    = Stop the DTR/<D>SR protocol.
  953.       [/LD]    = Activate the <L>ocal hand-shaking by DTR/<D>SR.
  954.       [/ED]    = Activate the r<E>mote hand-shaking by DTR/<D>SR.
  955.       [/BD]    = Activate DTR/<D>SR in <B>ilateral working.
  956.  
  957.                                                                        16
  958.  
  959.  
  960.  
  961.       [/NRI] [/RI] = Stop/activation of hand-shaking based on RI.
  962.       [/NCD] [/CD] = Stop/activation of hand-shaking based on DCD.
  963.       [/NOT] [/OT] = Stop/activation of hand-shaking based on OUT1.
  964.       [/NX]    = Stop <X>on/Xoff protocol.
  965.       [/LX]    = Activate the <L>ocal hand-shaking by <X>on/Xoff.
  966.       [/EX]    = Activate the r<E>mote hand-shaking by <X>one/Xoff.
  967.       [/BC]    = Activate <X>on/Xoff in <B>ilatéral working.
  968.       [/X=[xx],[yy]]= Definite the HEXA codes to use for Xon ([xx])
  969.                  and Xoff ([yy]).
  970.       [/O]     = <O>pen the port.
  971.       [/F]     = Close the port.
  972.  
  973.     EXAMPLE: C:> SETPORT COM1:110,p,7,2/s=Null/El/o  COM3:/BX/R=2/AI  /Info
  974.  
  975.                                                                        17
  976.  
  977.  
  978.  
  979.  
  980.  
  981.                     ANNEX A:  Principle of the null-modem cable
  982.  
  983.  
  984.  
  985.  
  986.  
  987.       The null-modem cable to use in order to exploit the SERIAL PORTS MANAGER
  988.     driver as well as the associates demos., must be made following
  989.     the minimum installation below:
  990.             (3) Rx (receipt)────────««────────(transmit) Tx (2)
  991.             (2) Tx (transmit)─────────»»───────(receipt) Rx (3)
  992.             (7) Gnd (ground)───────────────────(ground) Gnd (7)
  993.  
  994.  
  995.  
  996.       The following installation allows to neutralize the RTS/CTS and DTR/DSR
  997.     signals (allows to verify the neutrality of the hard hand-shaking protocols
  998.     implemented in STARCOMM.EXE):
  999.             (3) Rx (receipt)────────««────────(transmit) Tx (2)
  1000.             (2) Tx (transmit)─────────»»───────(receipt) Rx (3)
  1001.             (7) Gnd (ground)───────────────────(ground) Gnd (7)
  1002.             (4) RTS»─┐                               ┌─«RTS (4)
  1003.             (5) CTS«─┘                               └─»CTS (5)
  1004.            (20) DTR»─┐                               ┌─«DTR (20)
  1005.             (6) DSR«─┘                               └─»DSR (6)
  1006.  
  1007.  
  1008.  
  1009.       In all rigor, the complete scheme for the null-modem cable is:
  1010.             (1) Chassis ─────────────────────────── Chassis (1)
  1011.             (3) Rx (receipt)─────────««───────(transmit) Tx (2)
  1012.             (2) Tx (transmit)────────»»────────(receipt) Rx (3)
  1013.             (7) Gnd (ground)───────────────────(ground) Gnd (7)
  1014.             (4) RTS ─────────────────»»──────────────── CTS (5)
  1015.             (5) CTS ─────────────────««──────────────── RTS (4)
  1016.            (20) DTR ──────»»─────────┐  ┌──────««────── DTR (20)
  1017.             (6) DSR ─«─┐             └─────────────┬─»─ DSR (6)
  1018.             (8) DCD ─«─┴────────────────┘          └─»─ DCD (8)
  1019.            (22) RI ───────────────────────────────────── RI (22)
  1020.  
  1021.                                                                        18
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.       There is, between the number of the DB25 binds (concerned by the above
  1028.     diagrams) and the number of the DB9 bind, the following corresponding:
  1029.  
  1030.            Taken DB9                   Taken DB25    Signal
  1031.                3----------------------------2   <-->   Tx
  1032.                2----------------------------3   <-->   Rx
  1033.                5----------------------------7   <-->   Gnd
  1034.                7----------------------------4   <-->   RTS
  1035.                8----------------------------5   <-->   CTS
  1036.                6----------------------------6   <-->   DSR
  1037.                4----------------------------20  <-->   DTR
  1038.                1----------------------------8   <-->   DCD
  1039.                9----------------------------22  <-->   RI
  1040.  
  1041.  
  1042.  
  1043.    !!!!!!!!!!!!!!!!!!  T A K E    C A R E   ---> Users... !!!!!!!!!!!!!!!!!
  1044.    !!!    All other type of NULL MODEM CABLE is susceptible of          !!!
  1045.    !!! provoking some stops of communication between the programs       !!!
  1046.    !!! using the serial driver STARCOMM.EXE v2.0 and above. The risk    !!!
  1047.    !!! entirely rest on the nature of the used links (by the cable)     !!!
  1048.    !!! between the communication control signals...                     !!!
  1049.    !!! If your cable is not suitable, do not use the options to activate!!!
  1050.    !!! any of the hand-shaking protocols RTS/CTS, DTR/DSR, RI, etc...   !!!
  1051.    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Developers... !!!!!!!!!!!!!!!!!!!!!!!!!!
  1052.    !!!    You could define some particular hard hand-shaking            !!!
  1053.    !!! (following the developed instructions in STAR_REF.DOC ANNEX...). !!!
  1054.    !!! Using its personalized management of modem signals, your program !!!
  1055.    !!! won't be able to work without its cable to the particular        !!!
  1056.    !!! pattern: you will have earned a good hardware KEY protection for !!!
  1057.    !!! your program...                                                  !!!
  1058.    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1059.  
  1060.                                                                        19
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.             ANNEX B:  Types of UART chips on PC and compatibles
  1067.  
  1068.  
  1069.  
  1070.        This appendix present a fast summary on the types of UART, products by
  1071.      INTEL C° (tm) and compatible with the 8250, that was successively
  1072.      implemented on the range of IBM computers and compatibles.
  1073.  
  1074.        8250 ......... First UART used on the first IBM PC. It is a slow
  1075.                       controller: the accesses to the registers are faster
  1076.                       than the treatments done by the 8250 ! It disposes of
  1077.                       7 registers and is "sold" in order to accept bauds until
  1078.                       56 Kilo-bauds. The receipt and transmit buffer are
  1079.                       both made of only one byte.
  1080.        8250A ........ It is a correction of 8250, with 1 register in addition:
  1081.                       the scratchPad, that allows to mark the presence of
  1082.                       the UART controller.
  1083.        16450 ........ It is an improved version of 8250A: its internal
  1084.                       treatments are fast enough in order to avoid some losses
  1085.                       of time at the time of software accesses to the
  1086.                       controller regiters. It doesn't permit however, in
  1087.                       theory, to support more than a 56 kilo-bauds speed of
  1088.                       transmission.
  1089.        16C451 ....... It is the CMOS version of 16450 (i.e. 16450 with low
  1090.                       electric energy needs).
  1091.        16550 ........ First version of a new improved 16450: it should permit
  1092.                       the activation of an internal buffer of 16 bytes,
  1093.                       and the support of 256 kilo-bauds. A mistake in
  1094.                       realization made it inoperative. Only some first
  1095.                       PS/2 received this controller (quickly retired from
  1096.                       INTEL C° !). It must NOT be used as a 16450 (i.e.
  1097.                       forbid the activation of its FIFO mode using the /PF
  1098.                       option of STARCOMM.EXE !).
  1099.        16550A/AF/AFN. It is the first functional version of 16550 ! Its 16
  1100.                       bytes buffers do works and it support up to 256 Kilo-Bds.
  1101.        16C551 ....... CMOS version of 16550AF.
  1102.        16C552 ....... Implement 2 16C551 in the same electronic box.
  1103.        82510 ........ It is a 16450 supplied with buffers of 4 bytes. It is
  1104.                       used in some notepad.
  1105.        Then.......... It decorated how certain(s) competitor(s) of the INTEL
  1106.                       business is attacking the production of 16550AFN type
  1107.                       controllers, based on the utilization of 32 bytes in
  1108.                       its internals buffers (this since mis-1990...).
  1109.                       To follow !...
  1110.  
  1111.        To summarize, retain 3 generations in the evolution of this UART
  1112.      controller essentially (Universal Asynchronous Receiver & Transmiter)
  1113.        8250A ........ Simple but slow UART,
  1114.        16450 ........ Simple and fast UART,
  1115.        16550AF ...... Fast UART, with 16 bytes buffers and reliable !
  1116.  
  1117.                                                                        20
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.                        ANNEX C:  Why a "BIOS emulation" ?
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.        Why offering an option to emulate the BIOS interrupt 14h whereas
  1130.      STARCOMM.EXE seem already be (by nature) such an emulator ? Because the
  1131.      functions 1 (send) and 2 (receive) of the INT 14h filtered by STARCOMM
  1132.      could benefit from contributions of this driver (16550 UART FIFO buffers
  1133.      excepted) only with the OPENED ports of the driver. Indeed, STARCOMM
  1134.      redirects the calls to these functions for the closed serial ports on
  1135.      the original BIOS interrupt (it was a logical choice at the time of the
  1136.      initial program development !...).
  1137.  
  1138.        In order to benefit from the possible redistribution of some serial
  1139.      ports addresses, from the access to the ports 1 up to 8, from the time-out
  1140.      definitions, and from hardware (input/output) hand-shakings, even on
  1141.      STARCOMM CLOSED ports, it is therefore necessary to activate a special
  1142.      part of the driver code: its BIOS emulator of the original BIOS
  1143.      communication functions.
  1144.        Of course, the I/O serial ports buffers won't be used when accessing
  1145.      a closed port THROUGH the BIOS emulator (it is necessary and sufficient
  1146.      to OPEN the ports in order to fully benefit from STARCOMM contributions !)
  1147.      But this emulation permits to dispose of an improved BIOS (from the today
  1148.      available UART point of view) as soon as STARCOMM.EXE is installed on
  1149.      your machine with its BIOS emulator activated...
  1150.        This improved BIOS also guaranties a security on the used addresses in
  1151.      order to reach to the UART (it is not anymore the BIOS addresses specified
  1152.      by [40:00] to [40:06] that is used, but the driver addresses, well
  1153.      "hidden" in RAM !). It finally permits to enhance all PC compatible BIOS
  1154.      with the function 05h that doesn't normally exist, except on the PS/2...
  1155.  
  1156.                                                                        21
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.              ANNEX D:  Files making SERIAL PORTS MANAGER v2.20
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.         INFORME  DOC...General informations on the product origin.
  1169.         SPECIFS  DOC...General technical facts on the pack.
  1170.         REGISTER DOC...To register SERIAL PORTS MANAGER, send me your
  1171.                        appreciations, or report some noted bugs.
  1172.         UPDATES  DOC...What's new in this last release of S.P.M. ?...
  1173.         STARGUID DOC...The user guide for SERIAL PORTS MANAGER v2.20
  1174.         STAR_REF DOC...The reference manual for programming by using
  1175.                        STARCOM8.EXE, STARCOMM.EXE or SCLIB.OBJ.
  1176.  
  1177.         SETPILOT  EXE..Small utility to install and setup STARCOMM.EXE
  1178.  
  1179.         STARCOMM EXE...Serial driver:it is the kernel of SERIAL PORTS MANAGER !
  1180.         STARCOM8 EXE...Kernel of SERIAL PORTS MANAGER adapted to the management
  1181.                        of 8 serial ports (STARCOMM can only drive up to
  1182.                        4 serial ports...).
  1183.         SETPORT  COM...An utility developed (using C) in order to offer you
  1184.                        a way to have a 'port by port' control on the installed
  1185.                        driver in memory (whereas it works in its BIOS or
  1186.                        DEVICE DRIVER mode).
  1187.         STARINTF PAS...Interface in order to use the driver services from
  1188.                        the (C)Turbo Pascal.
  1189.         STARINTF C.....Interface in order to use the driver services from
  1190.                        the (C)Turbo C.
  1191.         SCLIB    OBJ..."Library" release of STARCOM8.EXE (8 ports).
  1192.         DEMO_LIB ASM...A simple demo. of how to use SCLIB.OBJ.
  1193.  
  1194.         TESTSTAR PAS...A demo. DEVELOPED in Turbo PASCAL to use STARCOMM
  1195.                        in a multi-communication process.
  1196.                        Require the procedures of STARINTF.PAS
  1197.         TESTSTAR EXE...Executable file of this demonstration !
  1198.         TERMINAL C.....A simple TTY terminal based on the use of STARCOMM
  1199.                        loaded as a DEVICE DRIVER: we reache the port by
  1200.                        the means of the logical file (called "COMM:").
  1201.                        Require the procedures of STARINTF.C
  1202.         TERMINAL COM...Executable file of this demonstration !
  1203.  
  1204.         REMOTE   EXE...A small application allowing you to exploit a remote
  1205.                        IBM PC/AT from the local computer. We could name it
  1206.                        a "DOS terminal emulator"...
  1207.  
  1208.         MODEM    DOC...Document containing informations on the procedures
  1209.                        made to access modems, procedures contained in
  1210.                        MODEM.PAS and MODEM.C.
  1211.         MODEM    PAS...PASCAL procedures to access HAYES modems.
  1212.         MODEM    C.....C procedures to access HAYES modems.
  1213.         TESTMODP PAS...Source of the demo. to use MODEM.PAS.
  1214.         TESTMODC C.....Source of the demo. to use MODEM.C.
  1215.  
  1216.         CONVERT  DOC...Document for the procedures made to convert data.
  1217.         CONVERTA ASM...Simple procedures to make ASCII-transcoding: they
  1218.         CONVERTP PAS...permit to transfer any binary file even when using
  1219.         CONVERTC C.....the Xon/Xoff software hand-shaking...
  1220.