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

Description of the X25/Asynchronous simulator

Date   : Dec 28th 1989
Author : Gilles Lejeune

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

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

The purpose of this application is to run a simulator controling, 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 
wait for a reception  from any of the 2 ports. If a reception occurs,
it will call a state machine routine ( X25 or asynchronous ) which will
decide what actions to take and also act like pass, this means passing
the data from the X25 link to the Asynchronous link and vice versa.

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

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


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

	source : x25_tsk.c x25_ub.c x25_b.c x25_disp.c
        executable : x25_tsk
        makefile : makex25

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

2.1 File x25_tsk.c
------------------

This file contains the state machine routines for X25 and asynchronous.
It will also display the received messages and pass the data from the X25 
data packet to the asynchronous link, and the data from the asynchronous
link to data packets on the other port.

2.2 file x25_b.c
----------------

       x25_b        : build an X25 packet

2.3 file x25_ub.c
-----------------

       x25_ub      : unbuild ( or decode ) an X25 packet

2.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


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. 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 "x25test" directory.

