********************************************************************

Description of the X25/Asynchronous test organization

Date   : Dec 28th 1989
Author : Gilles Lejeune

********************************************************************

1. General description
----------------------

The purpose of this application is to run a test controlling, on port A
an HDLC link and , on port B, an asynchronous link. The general organization
of the application is as follow :
 The main control task "x25_tsk" start 2 protocol tasks, children of the
control task. The protocol task on Port A controls the HDLC link and the 
protocol task on port B controls the asynchronous link. Those 3 tasks are
independant link and the communication between those tasks is done by 
using the "communication library".
 When everything is started and initialized, the control task will prompt
the user for a test to execute. There is only one test written given as
example "x25t1". This test is also a separate link.

Note : To be able to link and execute this application, the following
       libraries need to be installed on the machine :

	- HDLC  : auto HDLC library
        - ASYNC : asynchronous library
        - COM   : communication library


2. Main control task
--------------------

	source : x25_tsk.c
        executable : x25_tsk
        makefile : makex25

This control task is the only one started by the user. This program
is only linked with the "communication library". 

3. HDLC protocol task
---------------------

       source : hl_task.c
       executable : hl_task
       makefile : makehl

This protocol task controls the HDLC link on port A. This program is 
linked with the "Enhanced Auto HDLC library" and the "communication
library".

4. Asynchronous protocol task
-----------------------------

       source : asy_tsk.c
       executable : asy_tsk
       makefile : makeasy

This protocol task controls the asynchronous link on port B. This
program is linked with the "asynchronous library" and the 
"communication library".

5. Standard X25/asynchronous test library
-----------------------------------------

       source : x25_tl.c x25_b.c x25_ub.c x25_disp.c
       library name : libxtl.a
       makefile : maketl

This library contains the basic routines called from the test scenario
"x25t1.c". All the functions called in this test are in the file "x25_tl.c".
The other files contains routines called in the library functions of this file.
This library also contains the "communication library" functions. 

List of the functions of this library :

   5.1 file x25_tl.c
   -----------------
       
       init_test    : initialize test
       end_test     : end a test
       x25_error    : handle x25 error
       asy_error    : handle asynchrnous error
       send_x25     : send an X25 packet
       send_asy     : send an asynchronous string
       expect_x25   : expect an X25 packet
       expect_asy   : expect an asynchronous string
       put_x25_mess : put an X25 packet type in a string

   5.2 file x25_b.c
   ----------------

       x25_b        : build an X25 packet

   5.3 file x25_ub.c
   -----------------

       x25_ub      : unbuild ( or decode ) an X25 packet

   5.4 file x25_disp.c
   -------------------

       disp_init      : display background screen of test
       clears         : clear screen
       movxy          : move cursor position
       disp_x25       : display X25 messages
       disp_x25_error : display x25 error
       disp_async     : display asynchrnous message
       disp_asy_error : display asynchronous error
       dispend        : display end of test message


6. X25/Async test scenario
--------------------------

       source : x25t1.c
       executable : x25t1
       makefile   : maketest

This test is an independant link, describing the test scenario. It is
started by the control task and replaces it for the protocol tasks. It
then returns to the main control task "x25_tsk". This test is only linked
with the "test library" described above.
More test like this one can be written the same way and started one by one
by the main control task "x25_tsk".


7. Linking all
--------------

The batch file "doit" can be started to recompile and relink everything.
The final configuration can be demonstrated , Chameleon to Chameleon,
connecting port A to port A and port B to port B, and running, on the other
chameleon, the configuration described in the "x25sim" directory.

