home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
GENUTIL
/
FCI0106.ZIP
/
FCI.TXT
< prev
next >
Wrap
Text File
|
1994-10-24
|
23KB
|
793 lines
FCI 1.06- Reference Manual
FCI
Fossil Compatible Interface
Version 1.06 Oct 1994
Copyright 1994, Mario Viara
All Rights Reserved
Mario Viara
P.O BOX 130
12100 CUNEO ITALY
BBS: +39 171-691995
FAX: +39 171-691995
VOICE:+39 171-695128
NETMAIL: Mario Viara 2:334/705@fidonet.org
EMAIL: M.Viara@agora.stm.it
Pag. 1
FCI 1.06- Reference Manual
INDEX
1. INTRODUCTION 3
1.1. NOTICE 3
1.2. REGISTRATION INFORMATION 3
1.3. DISTRIBUTION NOTICE 3
1.4. Simple Description 4
1.4.1. System requirement 4
1.4.2. Most important properties 4
1.4.3. Contact the author 4
1.4.4. Distribution Form 4
2. INSTALLATION 5
2.1. Specific version 5
2.2. Multi task installation 5
2.2.1. Multi task performance 5
2.3. Command line parameter 5
3. CONFIGURATION 7
3.1. Configuration parameters 7
3.1.1. Generic parameters 7
3.1.2. Port specific parameters 7
4. ADVANCED CONFIGURATION 10
4.1. Detect idle time 10
4.2. Automatic Transmission/Reception 10
4.2.1. Automatic Transmission 10
4.2.2. Automatic Reception 10
4.3. FCIDUMP Utility 10
5. TECHNICAL INFORMATION 12
5.1. Tick functions and user function 12
5.2. Function CALL 12
5.3. FCI API 12
Pag. 2
FCI 1.06- Reference Manual
1. INTRODUCTION
1.1. NOTICE
THIS IS NOT FREE SOFTWARE! If you paid a "public
domain" vendor for this program, you paid for the service of
copying the program, and not for the program itself. Rest
assured that nothing ever gets to the originators of this
product from such a sale. You may evaluate this product for 30
days, after this evaluation period if you make use of it, you
must register your copy.
1.2. REGISTRATION INFORMATION
The non-commercial single-user registration fee for FCI is $20
US.
The commercial and multisystem site fee for FCI is $50 US.
The check can be in US $ or equivalent value in other currency.
Send a check or company P.O. for the appropriate amount to:
Viara Mario
Casella Postale 130
12100 CUNEO - ITALY
After the registration you will receive one registration KEY and
the instruction for register FCI and all new released version.
For more detailed information see the file REGISTER.TXT.
3. 1. DISTRIBUTION NOTICE
This is "user-supported" software. You are hereby granted a
license by Mario Viara to distribute this evaluation copy of FCI
and its documentation, subject to the following conditions:
FCI may be distributed freely without charge in evaluation .
form only.
. FCI may not be sold, licensed, or a fee charged for its use.
If a fee is charged in connection with FCI it must cover the
cost of copying or dissemination only. Such charges must be
clearly identified as such by the originating party. Under no
circumstances may the purchaser be given the impression
that he is buying FCI itself.
FCI must be presented as a complete unit, including this .
documentation. Neither FCI nor its documentation may be
amended or altered in any way.
. By granting you the right to distribute the evaluation form of
Con>Format, you do not become the owner of FCI in any
form.
. Any other use, distribution or representation of FCI is
expressly forbidden without the written consent of Mario
Viara.
Pag. 3
FCI 1.06- Reference Manual
1.4. Simple Description
FCI is one implementation of FOSSIL 03 specification with some
important and very interesting innovation.
4. 1. System requirement 1.
Fci required one system with all this properties :
IBM-AT ISA or EISA Compatible architecture .
. Intel 80286 or higher processor
UART NS16450 or 16550 compatible .
4. 1. Most important properties 2.
FCI have this important properties :
386 or higher specific version .
Can be loaded in UMB .
32 different port .
. Multi serial board support
Multi tasking support .
Interrupt lost automatic recovery support .
. Automatic support when lost one character of handshake
1.4. Contact the author 3.
I'm very happy if you want send me your impression or hint for
future version. For this purpose use one of mail or e-mail address
present in the introduction page.
1.4.4. Distribution Form
FCI is distributed in one unique file called FCIxxxxb.ZIP that
contains all documentation and executable file, xxxx is the
version number and b if present is the identification for one beta
version. For example the version 1.02 have the name FCI0102.ZIP.
The latest version of FCI can be download from my BBS with file
request magic name FCI.
Pag. 4
FCI 1.06- Reference Manual
2. Installation
2.1. Specific version
FCI is distributed in two different form FCI.EXE and FCI386.EXE.
FCI.EXE is a general version for all CPU from 80286 and FCI386.EXE
is one special version that use some 386 specific instruction to
improve performance and can be used in all system with one 80386 ,
80486 or higher system. The two version are identical for all
options only the 386 version is more fast. All instructions are
for FCI.EXE but can be applied to FCI386.EXE.
2.2. Multi task installation
When work in one multi task environment FCI can be installed in
two way ,in the common memory, if is installed before starting the
multi tasking ,or in the task memory , if installed after the
multi tasker. For multitasker supported like DesqView or Windows
3.x FCI must be, for better performance, before the multitasker
for other multitaskter must be installed in any single task that
use it.
One very important difference from FCI and other FOSSIL driver is
that FCI detect and support automatically multi tasking and d'ont
need TAME-aware program.
2. 2. 1. Multi task performance
In one multi task environment all time spent for wait character
form serial board or for wait that one transmission is complete
with one normal fossil driver is lost, FCI can automatically
detect this time and give it to the system that can run other
task, with greater improvement of general system performance.
3. 2. Command line parameter
FCI for is installation take parameter from one file that default
name is FCI.CFG and must be located in the current directory from
where the driver is started. This filename can be changed using
the F option described later.
For installing FCI use this command :
FCI [Options]
where options are :
. Filename - Can be used only for installing the driver and if is
present filename override the default configuration file name
FCI.CFG.
Pag. 5
FCI 1.06- Reference Manual
. I - Can be used only after installation and display some driver
information.
. U - Can be used only after installation and if is possible
uninstall the driver.
Pag. 6
FCI 1.06- Reference Manual
3. Configuration
Configuration of FCI is made by one ASCII text files that contain
all parameter. This is file can be modified with any normal DOS
text editor starting from the default FCI.CFG supplied with the
packet. All line that start with one ; are comment and are
ignored, comment can be put after any parameter.
1. 3. Configuration parameters
The configuration file have this generic form :
NAME[x] [VALUE]
Where NAME is the name of the parameter that want change/set and
VALUE if present is the relative value. NAME can be followed from
one number for parameter that are port specific like base address
, irq number etc. VALUE is not present for 'FLAG PARAMETER' that
do not require one value but are only options that are activated.
In this document parameter that are not port specific are called
generic parameter and the others port specific parameter.
3.1. Generic parameters 1.
NAME DEFAULT VALUE BASE DESCRIPTION
PORTN 10 4 Maximum number of ports that
can be installed, the maximum
current supported number is 32.
MAXWAIT 10 100 Number of nop call to the
fossil driver before of
automatic idle context switch.
MAXTWAIT 10 10 Maximum time in tick for
MAXWAIT nop call.
MAXAUTORX 10 800 Time-out in tick after that if
no chars are received the
driver send one XON.
MAXAUTOTX 10 100 Maximum time in tick after one
XOFF is received that driver
enable automatically the
transmission.
1. 3. Port specific parameters 2.
NAME BASE DEFAULT VALUE DESCRIPTION
Pag. 7
FCI 1.06- Reference Manual
BASEx 3F8,2F8,3E8,2E 16 Base address of the port.
8
PSTSx 16 - Status port for multiserial
board.
PMASKx 16 - Status port mask for
multiserial board.
PVALUEx 16 - Status port value for
multiserial board. When one
interrupt from one multiserial
board occurs the driver for
decide the interested port read
the PSTSx make the and with
PMASKx and compare the value
with PVALUEx if are the same
the interrupt for the specified
port is served otherwise skip
to the next port configured in
the same multiserial board.
IRQx 10 4,3,5,7 This is the interrupt request
number for the port if is 0 the
port is not interrupt driven
but polled. Polled port can
work fine with low speed baud
rate in non multitasking
environment.
RXSIZEx 10 1024 Size of recv buffer.
TXSIZEx 10 512 Size of tx buffer.
RXVHIx RXSIZEx*7/8 10 Limit of number of char in recv
buffer that when is reach if
XON/XOFF is enabled the driver
send one XOFF for every char
received.
RXHIx 10 RXSIZEx*3/4 Limit of number of char in recv
buffer that when is reach the
driver, if enabled, send one
XOFF and lower the CTS signal.
RXLOWx 10 RXSIZEx/2 Lower limit of handshake when
if reach the driver ,if
enabled, send one XON and
rising the CTS signal.
BAUDx 10 - If this parameter is specified
the baud rate is locked to the
specified value and every try
to change it take no effect.
All baud rate from 300 to
115200 can be written the only
exception is for 115200 baud
that must be written 11520.
Pag. 8
FCI 1.06- Reference Manual
FIFOx 10 8 Is the value of receive FIFO
buffer for uart that support
it. This value can be raised if
the system have one very low
interrupt latency.
FLAGIDLEx FLAG NO If specified the driver detect
idle time, for multitasking
environment, according to
MAXWAIT and MAXTWAIT and give
it to the system.
FLAGAUTOTXx FLAG NO If present the system enable
the logic of auto transmission
according with MAXAUTOTX.
FLAGAUTORXx FLAG NO If present the system enable
the logic of auto receive
according with MAXAUTORX.
FLAGINT13x FLAG NO If present when one INT 13 call
is invoked automatically the
system disable the RTS during
the call. This flag is very
useful for system that take for
too much time the interrupt
disabled during I/O.
FLAGDSRx FLAG NO The driver return DSR signal
every time active without
regarding to the real state.
FLAGCTSx FLAG NO The driver return CTS signal
every time active without
regarding to the real state.
FLAGDCDx FLAG NO The driver return DCD signal
every time active without
regarding to the real state.
Pag. 9
FCI 1.06- Reference Manual
4. Advanced configuration
Some characteristic of FCI are very useful but need one more
detailed explanation for use it in the most good way, this chapter
explain of configure FCI in the most typical situation.
1. 4. Detect idle time
MAXWAIT and MAXTWAIT are very important for improve performance in
multitasking environment, this parameter permit to FCI of decide
when must give control to the system.
When one fossil call is made without input/output transfer, for
example check if some haracter are available or check if the
transmission buffer is full, FCI understand that
this is one `nop' call. MAXWAIT is the number of consecutive `nop'
call must occur before that the control is give to the operating
system. MAXTWAIT is the maximum time ,in system tick (each 55
ms), in that the MAXWAIT is checked.
FCI detect automatically all other condition that the idle time
must release to the operating system, for example if one program
wait for one character to be received and have no character in the
receive buffer all the time that must wait for one character
available is released to the operating system.
Detect idle time can be enable or disable for any port via the
flag FLAGIDLEx.
See also : Port specific parameters
4.2. Automatic Transmission/Reception
FCI implement one logic of automatic transmission/reception that
is very useful when one character of handshake is lost. This logic
is controlled by two parameter MAXAUTOTX and MAXAUTORX.
2. 4. 1. Automatic Transmission
When FCI receive one XOFF for one specific port, if the relative
FLAGAUTOTXx is enabled, start one counter that when reach
MAXAUTOTX without receive one XON, FCI cancel the effect of the
XOFF and start to send data. This function is very useful for bad
quality line that lost many characters.
2. 4. 2. Automatic Reception
Automatic reception work like automatic transmission but in
opposite front, if FCI detect that one port , with FLAGAUTORXx
enabled, d'ont receive character for one time that is greater of
MAXAUTORX send automatically one XON.
4.3. FCIDUMP Utility
Pag. 10
FCI 1.06- Reference Manual
With FCI is present one program named FCIDUMP.EXE. The scope of
this program is monitoring FCI activity and is very important
during debug fase but also I have include it in the distribution
package because can also be used for configure FCI for best
performance. FCIDUMP run in two form. If is invoked without
command line options send to the standard output all parameter of
FCI. If invoked with any options display the same parameter in
real time, this last form is very interesting if used in one multi
task environment for example is possible monitoring FOSSIL
activity of all task that running in the system. One complete
explanation of all the parameter displayed is out of scope of this
document but all the name of the parameter that are displayed are
self explained and I think that any one that now how one fossil
driver work can understand all.
Pag. 11
FCI 1.06- Reference Manual
5. Technical information
In this chapter I analyze how FCI handle some situation that are
not completely clear in the FOSSIL specification.
5.1. Tick functions and user function
FCI like other fossil driver handle tick and user function, but
multitask environment need some little clarification. If the
function is connected before that multitasking is started this
function is called at every tick but the function running in non
specific V86 machine and cannot access to any process specific
function. Otherwise if the function is connected after starting of
multitasking the function is specific for the task the connect it
and can access to the data of the specified V86 machine. Normally
is better load program that user tick or user defined fossil
functions in the environment of the process that use it.
2. 5. Function CALL
All function not in the fossil specification, for example all
function call with number greater of 1ch are passed without any
check to the previous INT 14 handler.
All fossil function that reference one port not open are again
passed to the previous INT 14 handler, with exclusion of fossil
open port function.
5.3. FCI API
Over of fossil specification FCI implement one internal API any
one that is interested can ask the author for one copy of FCI API
specification.
Pag. 12