			       WIServer synopsis
			       =================

Author: Mike Morgan
Date:   2/7/93


Introduction
============

The WIServer (Windows IServer) was designed to be a direct replacement for the 
INMOS IServer program, running in a windows environment. It was also designed 
to take advantage of the windows environment to provide a move flexible 
'front end' for transputer applications. 


Use of Windows dynamic link libraries (DLLs)
============================================

The Windows dynamic link libraries allow applications to dynamically load code 
libraries. This allows Windows applications to be updated without altering the 
main application code. For WIServer, it allows Transputer developers to add 
functions to the server without having access to the server source or object 
code. This allows developers to build user interfaces for their code using a 
suitable tool (such as the Whitewater Resource Toolkit). The server itself 
will support multiple text windows and a number of Windows specific functions, 
but using DLLs it has also been possible to write a graphic window DLL. Up to 
ten DLLs may be used at the same time. 


Graphic window DLL
==================

This DLL allows Transputer applications to display graphic images made up of 
up to 1000 lines. Several graphic windows may be open at one time. Manipulator 
motion animation has been produced using this DLL and supporting occam 
procedures. The occam procedures load the DLL code, use its' facilities and 
then unload the DLL. The source for this DLL is available as example code. 


The link interface
==================

WIServer make's use of Windows DLL modules to implement the link interface 
code. The type of link interface is specified in the initialisation file as 
the filename for the link interface DLL code. The code is then dynamically 
loaded by WIServer. This approach allows WIServer to support a range of link 
interfaces with the minimum of effort both to the user and developer. The 
source for the link interface code for the B008 Transputer board is available. 
The link interface DLL also allocates link handles for every link. This allows
it to serve more than one WIServer application if there happen to be multiple
links available on a PC. The DLL will also prevent the same link being taken 
over by another WIServer application while it is still in use. There is also 
a driver that conforms to the Inmos S708 standard link interface.


Initialisation file
===================

The server reads initialisation details from a file specified in its' command 
line. The initialisation file is a text file and has the following options:

#  text                                  A comment.

Reboot_option   <on/off>                 Turns on or off the reboot option in 
					 the system menu.

Analyse_option  <on/off>                 Turns on or off the analyse option 
					 in the system menu.

Serve_link                               Forces the server to serve the link.

Link_name       <filename>               Specifies the DLL for interfacing to 
					 the transputer link. (There may be 
					 DLL specific parameters after the 
					 filename.)

Set_cmd_line    <text>                   Allows information to be passed to 
					 the transputer program by handling 
					 the IServer 'Get command line' 
					 command.

Reset                                    Resets the transputer.

Analyse                                  Resets the transputer with the 
					 analyse pin set and peeks low memory.

Peek_size       <n>                      Specifies the amount of memory (kb)  
					 to be stored if the transputer is 
					 analysed.

Log_file        <filename>               If used then WIServer will create a
					 text log file of all link 
					 communication.

Copy_to_link    <filename>               Copies the file to the link. (Used 
					 with reset for booting.)

Default_window  <x y title refresh_rate> Sets up a text window for 
					 applications that expect a standard 
					 DOS window to be present.

Set <variable name> <variable value>     Creates a pseudo environment 
					 variable for the IServer 'Get 
					 Environment Variable' command. 


Text windows
============

WIServer allows applications to open several text windows of up to 100 by 100 
characters. The windows may have any title (or no title bar at all), variable 
font sizes and caret (if required). Because of the relative slowness of 
displaying text in a Window, text windows may also have buffered output. This 
allows far faster scrolling of windows than would normally be possible. The 
technique is used by Windows 3, in DOS windows, for similar reasons. 
Text windows in WIServer are not BANSI compatible. If WIserver is to be used 
with TDS or other INMOS applications, the INMOS ITERM file must be modified 
slightly.


General windows specific information
====================================

WIserver has several commands for obtaining windows specific information. 
These include
	Free resources information (e.g. Number of free file handles).
	System information (e.g. Window handle with current input focus, 
	  desktop window handle etc.).
	System metric information (e.g. Screen size).
	WIServer application information (e.g. Task identifier)
	Window state information (e.g. window position)


Inmos TDS
=========

Primary support is provided for the Inmos TDS3 development system.

Inmos Occam Toolset
===================

Support is also provided for the Inmos Occam 2 Toolset (D7205).

WIServer occam libraries
========================

Occam libraries are provided for control of WIServer utilities. They are
designed to replace the standard INMOS IServer libraries. The source 
for these libraries is avaliable.


Documentation
=============

Documentation will be provided for general use and application development 
work. The general use document will instruct users on the general principles 
of the server and how to set it up. The application development document will 
detail all the occam library procedures and all the WIServer command tags. 
