This is the README file for the Hello system. The Hello system is a
multi-threaded operating system running on 80x86 machines.  The system is
still very much under development, and only supports limited devices such
as monitor, keyboard, timer, and the Intel EtherExpress network adaptor.

-------------------------------------------------------------------------------

1. The directory structure
 
- bin -

Includes two c shell script files, hello-part and hello-all, and
a binary file f2a.

If you modify the sml source code, run hello-all to re-compile the
whole system. If you only modify the C or assembly code of the system,
run hello-part, which is faster than hello-all -- hello-all is slow
because compiling the SML code is slow.

f2a is a binary used to convert the exported image of sml functions to
a C string. The source code of f2a program is in the src directory.

- linux -

Includes the C and assembly source code we took from linux kernel
2.0.30 and from the SML/NJ 110.7 runtime system.

- src -

Includes the source code of the f2a program and a directory sml which
contains all the SML source code.

source.cm in the sml directory is the CM file to compile the sml
code. Please refer the CM user manual on how to use it at
	http://cm.bell-labs.com/cm/cs/what/smlnj/doc/CM/index.html
 
file main.sml in the sml directory is the test program to demo how the
system works. You may change the code in it to play with the Hello
system. If you want to change the file name, also change its name in 
the source.cm file and in the script file under the bin directory.

-----------------------------------------------------------------------------

2. How to build and run the system


   A. Uncompress and untar the release.

   B. go to the linux directory,  and run make clean and make dep to
      update the linux dependency files.

   C. In file src/sml/foxnet/prot/init/helloinit.fun, you need
      to change the host IP address, the default router IP address, and
      the subnet mask address to the proper value for your testing
      machine. 
 
   D. make sure the /dev/fd0 is write accessible for you.

   E. Insert a blank 1.44M diskette(no format requirement) in the floppy
      drive.

   F. Run the script file "hello-all" in the bin directory
	e.g. hello-all Hello.main 
      Hello is the main module name of SML code, and main is the startup 
      function name in the Hello module.
	
      The bootable image will be written to the diskette.

   G. Reboot the system from the diskette.

The system is ending in an infinite loop. You have to reset the
machine to quit from the Hello system.

-----------------------------------------------------------------------------
 
3. How the system works
The file main.sml in the src/sml directory is a ping program to demo
how the system works. 

In file hello_fox/src/sml/init/main.sml, you maybe want to change the
IP address of machine you want to ping to, in stead of pinging to my home
machine.  
------------------------------------------------------------------------------

4. Documentation
The document on the design and implementation idea of the Hello system
is available at
   http://www.ics.hawaii.edu/~esb/prof/proj/hello/guangrui/thesis/ 
or http://www.ics.hawaii.edu/~esb/prof/proj/hello/guangrui.ps     
-----------------------------------------------------------------------------
 
5. System requirements
 
    80x86 compatible machine 
    32MB RAM(recommend to compile the system with 64MB RAM)
    Intel EtherExpress ethernet network adaptor 

 ----------------------------------------------------------------------------
 
6. Contact information
If you have any question on how to compile or run the system, or report
bugs in the system, please email us at Edoardo Biagioni(esb@hawaii.edu)
and Guangrui Fu(guangrui@hawaii.edu)
