hello_world_c

Mahesh revuri at seeyes.co.in
Wed Aug 2 07:26:21 UTC 2000


Hello Angello,
                        You will have to boot the .exe using GRUB boot loader.You
will have to make a GRUB bootable floppy and put the .exe file into it and then
boot load with the floppy.You can down load the GRUB image form the site or you
can make the floppy your self.I am attaching an old version of making a GRUB
bootable floppy..

Mahesh Revuri

angelo wrote:

> So how do I now execute the generated program.  I have attempted to create a
> boot floppy with lilo. Using test.bt as the image, the computer re-boots after
> loading. If I use test.bin, the program loads but does nothing. If I attempt
> to use test.exe as the image, lilo says that the image is too big.
>
> Joel Sherrill wrote:
>
> > angelo wrote:
> > >
> > > I have come upon some problems with the hello_world dated
> > > By making hello_world from the hello_world_c directory I get the
> > > following error massage.
> > >
> > > In file included from test.c:35:
> > > /opt/rtems/pc586/lib/include/confdefs.h:1005: #error "CONFIGURATION
> > > ERROR: No tasks or threads configured!!
> > > #endif
> > >
> > > /*
> > >  *  Make sure at least one of the initialization task/thread
> > >  *  tables was defined.
> > >  */
> > >
> > > #if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) &&
> > > !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) &&
> > > !defined(CONFIGURE_ITRON_INIT_TASK_TABLE)
> > > #error "CONFIGURATION ERROR: No initialization tasks or threads
> > > configured!!
> > > make: *** [o-optimize/test.o] Error 1
> > >
> > > Upon looking at test.c (in hello_world_c) we can see that
> > > CONFIGURE_RTEMS_INIT_TASKS_TABLE is actually defined, so I investigated
> > > the file /opt/rtems/pc586/lib/include/confdefs.h and we see the
> > > following:
> > >
> > > #if (CONFIGURE_MAXIMUM_TASKS == 0) && \
> > >     (CONFIGURE_MAXIMUM_POSIX_THREADS == 0) && \
> > >     (CONFIGURE_MAXIMUM_ADA_TASKS == 0) &&  \
> > >     (CONFIGURE_MAXIMUM_ITRON_TASKS == 0)
> > > #error "CONFIGURATION ERROR: No tasks or threads configured!!
> > > #endif
> > >
> > > /*
> > >  *  Make sure at least one of the initialization task/thread
> > >  *  tables was defined.
> > >  */
> > >
> > > #if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) && \
> > >     !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) && \
> > >     !defined(CONFIGURE_ITRON_INIT_TASK_TABLE)
> > > #error "CONFIGURATION ERROR: No initialization tasks or threads
> > > configured!!
> > > #endif
> > >
> > > The error has been caused by the following conditional statement:
> > > #if (CONFIGURE_MAXIMUM_TASKS == 0) && \
> > >     (CONFIGURE_MAXIMUM_POSIX_THREADS == 0) && \
> > >     (CONFIGURE_MAXIMUM_ADA_TASKS == 0) &&  \
> > >     (CONFIGURE_MAXIMUM_ITRON_TASKS == 0)
> > >
> > > however, the #error statement below this one and the conditional
> > > statement after it do not end in a ".   Is this correct? I believe they
> > > should both be terminated with a ".
> > >
> > > Back to the original problem however, This does not solve the problem as
> > > to why the hello_world_c did not make.  This overcome by adding
> > > #define CONFIGURE_MAXIMUM_TASKS 1
> > >  to test.c (in hello_world_c) and this allowed the program to build and
> > > generate an executable as o-optimize/test.exe.
> > >
> > > The two issues I am addressing in this long winded message are:
> > >
> > > 1. Should the two #error statements in
> > > /opt/rtems/pc586/lib/include/confdefs.h be terminated with a " ?, and
> >
> > Yes.
> >
> > > 2. Should I have to include the CONFIGURE_MAXIMUM_TASKS 1 in test.c?
> >
> > Yes.
> >
> > > PS.
> > > Just for a side issue, is it good programming practice to have #include
> > > statements at the bottom of source modules (test.c)?
> >
> > In this case, it is.  this include is instantiating the configuration.
> >
> > > --
> > > Angelo Fraietta
> > >
> > > PO Box 859
> > > Hamilton NSW 2303
> > >
> > > Home Page
> > >
> > > http://users.hunterlink.net.au/~maaaf/
> > >
> > > There are those who seek knowledge for the sake of knowledge - that is
> > > CURIOSITY
> > > There are those who seek knowledge to be known by others - that is
> > > VANITY
> > > There are those who seek knowledge in order to serve - that is LOVE
> > >     Bernard of Clairvaux (1090 - 1153)
> >
> > --
> > Joel Sherrill, Ph.D.             Director of Research & Development
> > joel at OARcorp.com                 On-Line Applications Research
> > Ask me about RTEMS: a free RTOS  Huntsville AL 35805
> >    Support Available             (256) 722-9985
>
> --
> Angelo Fraietta
>
> PO Box 859
> Hamilton NSW 2303
>
> Home Page
>
> http://users.hunterlink.net.au/~maaaf/
>
> There are those who seek knowledge for the sake of knowledge - that is
> CURIOSITY
> There are those who seek knowledge to be known by others - that is VANITY
> There are those who seek knowledge in order to serve - that is LOVE
>     Bernard of Clairvaux (1090 - 1153)
-------------- next part --------------
??????                >  ??	                               ????        ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????               	   
         
                                                             !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????R o o t   E n t r y                                               ????????    	     ?      F            ????R??1   ?       W o r d D o c u m e n t                                             ????????                                       [       C o m p O b j                                                   ????????????                                        n                                                                           ????????????                                                   ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????t as 'RAW GRUB' diskette (you can label it accordingly if
you wish). The other diskette, which we will refer to as 'GRUB FS'
should be high-level formatted with one of GRUB's supported file
systems, which are: DOS FAT, BSD FFS, and Linux ext2fs.

    A DOS FAT diskette can, obviously, be created under DOS with the
'FORMAT' command. Under Linux, the following commands are available to
add file systems to low-level formatted diskettes:

    1. To add a DOS FAT file system to a low-level formatted diskette:

      a) If you have mtools installed:

           'mformat a:'.

      b) Assuming that you are formatting the diskette in the first
         floppy disk drive ('/dev/fd0' under Linux):

           'mkdosfs /dev/fd0' or

           'mkfs.msdos /dev/fd0'.

    2. To add a Linux ext2fs file system to a low-level formatted
       diskette, assuming that you are formatting the diskette in the
       first floppy disk drive ('/dev/fd0' under Linux):

         'mke2fs /dev/fd0' or

         'mkfs.ext2 /dev/fd0'.

   Next we will install using 'rawrite' or 'dd' to the 'GRUB RAW'
diskette.

   NOTE: This will destroy any data currently on the diskette.

   Execute your OS's equivalent of (this should work for recent
FreeBSD versions and Linux just fine):

     dd if=stage1 of=/dev/fd0 bs=512 count=1
     dd if=stage2 of=/dev/fd0 bs=512 seek=1

   Under DOS/Windows/NT, courtesy of Eric Hanchrow (erich at microsoft.com):

     * Use the copy /b command to binary concatenate the stage1 and
       stage2 files together via:

         copy /b stage1 stage2 grub.raw

     * Use rawrite.exe (which is available in many places on the net and
       in some Linux distributions) to write grub.raw to a diskette.

   Next stage: copy the 'stage1' and 'stage2' files to the 'GRUB FS'
diskette (if you are using Linux you can mount the diskette in an
appropriate mount point and then 'cp' the files to it, if it is either
a DOS FAT or an EXT2FS diskette, or in the case of a DOS FAT diskette
you can use 'mcopy' from 'mtools'.)

   After this is done boot a PC using the 'GRUB RAW' diskette. After
this is done, you will get GRUB's command line interface. Exchange
'GRUB RAW' with the 'GRUB FS' diskette in the drive and issue the
following command from GRUB's prompt:

     install=(fd0)/stage1 (fd0) (fd0)/stage2 0x8000 (fd0)/grubmenu

   This command will make the 'GRUB FS' diskette bootable. After this
is done, you won't require the 'GRUB RAW' diskette anymore and you can
delete the 'stage1' file from the 'GRUB FS' diskette.

   Next copy all the files you wish to load to the diskette. The GRUB
loadable test and sample files in the RTEMS distribution have '.exe'
extension and can be found under the build point in the 'pc386/tests'
directory. You can compress this files with gzip to save space if you
wish. GRUB loads 'gzipped' files transparently.

   Finally you have to create a GRUB menu configuration file. We will
call this file 'grubmenu'. You can call it anything as long as you use
the correct name in the 'install' command where we used 'grubmenu'.

   The 'grubmenu' file, as far as we are interested has the following
syntax:

     title=  Hello World Test
     kernel= (fd0)/hello.exe.gz

   You can add as many of this entries as you want to the 'grubmenu'
file. There should be one for each program you wish to load. The
'title=' line provides a description for the program that will appear
after boot in the GRUB menu for the user to choose and the 'kernel='
line describes where the file can be found by GRUB (you should leave
the '(fd0)/' part and just substitute the rest if you've copied the
files to the root directory of the diskette.

   Just boot the PC with the 'GRUB FS' diskette and you will be able
to choose which program you want to load from GRUB's menu.

   The GRUB documentation is available in HTML format in the 'docs'
directory of the GRUB tree starting with the 'index.html' file.


6.3  Using NetBoot to load RTEMS PC386 applications
---------------------------------------------------

    To load the '*.bt' files you can

    Alternativ??e #?	                ?  ?,  [                  ?)                                  ,Z  l   ,Z  l                                   Z                                              Z  
   
Z  
           ?  K   (Z                                                             ?Z                                                     ?Z  T   ?Z                                                  	 
                                                                                                                                                                                                                                                                                         K      MS Sans Serif    Symbol 0    Courier New     Times New Roman 1. Introduction
---------------

    This tries to explain how to setup the RTEMS host environment so
that RTEMS applications can be built for and run in a bare PC 386 or
above.

    It covers essentially the aspects of loading images, since
information concerning other issues such as building the development
tools and the RTEMS distribution can be found in the 'RTEMS 4.0.0
On-Line Library' under 'Getting Started with RTEMS for C/C++ Users'.

    Please note that everything in the following text using the
notation '<...>' is just an alias to something and should always be
substituted by the real thing!


2. Building the GNU C/C++ Cross Compiler Toolset
------------------------------------------------

    Obtaining, building and installing the tools for building the
PC386 BSP of RTEMS is covered in detail in the 'RTEMS 4.0.0 On-Line
Library' -> 'Getting Started with RTEMS for C/C++ Users' -> 'Building
the GNU C/C++ Cross Compiler Toolset'.

    When running the 'bit' script you should specift the argumetn as
either:

   +  'i386-elf' to indicate an 'i386-rtemself' toolset, or
   +  'i386' to indicate an 'i386-rtems' toolset.


4. Building RTEMS
-----------------
    Obtaining, building and installing the tools for building the
PC386 BSP is covered in detail in the 'RTEMS 4.0.0 On-Line Library' ->
'Getting Started with RTEMS for C/C++ Users' -> 'Building RTEMS'.

    When running configure, use the following values for the listed
options:

      + with an i386-rtemself toolset
          --target=i386-rtemself
          --enable-rtemsbsp=pc386

      + with an i386-rtems toolset
          --target=i386-rtems
          --enable-rtemsbsp=pc386

 
5. RTEMS Tests
--------------

    If you've completed the last step successfully, you'll find the
RTEMS sample and test files that can be loaded with GRUB in the
'<build_point>/pc386/tests' directory, RTEMS sample and test files in
a format suitable for use with NetBoot in the
'<build_point>/pc386/BootImgs' directory.


6. Loading RTEMS PC386 applications
-----------------------------------

6.1. Unarchiving
----------------

    Files which have been "tarred, gzipped" (i.e. .tar.gz or .tgz
extension) may be unarchived with a command similar to one of the
following:

      zcat <file>.tgz | tar xvof -

    OR

      gunzip -c <file>.tgz | tar xvof -

    OR

      tar xzvf <file>.tgz

    NOTE: gunzip -c is equivalent to zcat. On commercial (non-Linux)
Unices, since the GNU utilities are not the standard 'tar' will be
gtar (GNU tar) and 'zcat' will be 'gzcat'.

    Given that the necessary utility programs are installed, any of
the above commands will extract the contents of <file>.tar.gz into the
current directory. To view the contents of an archive without
restoring any files, use a command similar to the following:

      zcat <file>.tgz | tar tvf -


6.2 Using GRUB to load RTEMS PC386 applications
-----------------------------------------------

    Using GRUB (GRand Unified Bootloader) is the simplest way to load
and run your PC386 BSP samples, tests and programs.

    You can get the latest release of GRUB from its homepage:

    - http://www.uruk.org/grub/

or alternatively by ftp from:

    - ftp://ftp.uruk.org/public/grub/

    Once you obtain the .tar.gz archive 'grub-0.4.tar.gz', change to a
temporary directory (you won't need the grub files after this and can
just go ahead and delete the whole directory structure that was
generated) and unarchive 'grub-0.4.tar.gz' following the instructions
given above in [2. Unarchiving].

    After this is done change the directory to:

      grub-0.4/bin_std

and there you'll find the two files you'll need from this archive:
'stage1' and 'stage2'.

    You should have two (2) formatted diskettes available. One of
these will only be used temporarily to create the other one, and we'll
refer to iely, if you have a PC connected to a network with a
BOOTP server and a TFTP server (this can very well be you're Linux
RTEMS host system), you can use Gero Kuhlmann's NetBoot loader, to
load RTEMS to a diskless PC across a network. You can get it from:

   ftp://sunsite.unc.edu/pub/Linux/system/boot/ethernet/netboot-0.7.3.tar.gz

or in any of Sunsite's mirrors. It is also available from NetBoot's
homepage:

      http://www.han.de/~gero/netboot

    After unarchiving 'netboot-0.7.3.tar.gz' you should change to the
base directory of this and run:

      ./configure --disable-mknbi-dos --disable-mknbi-linux --disable-mknbi-mgl

    Afterwards, you should follow the instructions contained in the
'INSTALL' file also contained in the base directory, on how to setup the
server(s) and to build a boot ROM for the client PC network card, or a
boot diskette, and the PC client should be able to load the '*.bt' files
from the server.

    The important sections to check in the 'INSTALL FILE' are the last two:

    - Setup of the server (only the BOOTP and TFTP parts - ignore NFS).
      ===================

    - Setup of the client including building the bootrom
      ==================================================

all the rest can be safely ignored if you don't care to examine it.

 
7. Technical Information
------------------------

    NOTE: All the following paths are relative to the base directory
of the RTEMS distribution.

    As of the writing of this HOWTO, PC386 images can be loaded either
in low memory 0x10000 (64KB) until 0x97C00 (607K) using NetBoot or in
high memory from 0x100000 (1024KB) until the top of the available
memory using either NetBoot or GRUB.

    If you want to change the default loading address from 1024KB to
something else, just change the value of the variable RELOCADDR in the
'make/custom/pc386.cfg' file to the new value you want (make sure you
follow the instructions indicated before the definition of RELOCADDR).

    Remember that GRUB restricts the loading addresses to values above
0x100000 (1024KB), only NetBoot can load images in low memory.

    After you make any changes to RELOCADDR and if you are using
NetLoader, you'll have to recompile the
'c/src/lib/libbsp/i386/pc386/start/start16.s' file. The easiest way to
achieve this is just to 'make clean' and the 'make all' again. The
quickest way is to change to
'<build_point>/c/src/lib/libbsp/i386/pc386/start' and 'make
RTEMS_BSP=pc386 clean all'.

    When programming interrupt handlers take into account that the PIC
is reprogrammed and so you should use the interface functions provided
in '<build_point>/pc386/lib/include/irq.h> to guarantee that everything
works ok.


                                                                                                                                                                                                                                                                                                                                                                                        ?            Z  [  ?  ?  ?  ?  ?  ?  ?  +  ,  m  n  ?  ?  ?  ?  ?  7  8  V  W  X  Y  ?  ?  ?  ?  ?  ?  ?  A  B  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  9  :  k  l  m  n    ?  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8?  ?  ?  ?  ?      \  ]  ^  ?  ?  ?  ?  ?  ?  ?  ?  ?  	  	  	  8	  9	  V	  W	  x	  y	  z	  {	  |	  ?	  ?	  ?	  ?	  ?	  ?	  ?	  
  
  d
  e
  ?
  ?
  ?
  ?
  ?
  ?
  ?
  ?
            )  *  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8*  +  l  m  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?              1  2  3  w  x  ?  ?  ?  ?  ?  *
  +
  q
  r
  ?
  ?
  ?
  ?
  ?
          A  B  q  r  s  ?  ?  ?  ?  ?  +  ,  -  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8-  L  M  N  k  l  m  ?  ?  ?  ?  ?     !  `  a  ?  ?  ?  ?  ?  ?  ?  ?        T  U  k  l  m  ?  ?  ?  ?  9  :  |  }  ?  ?  ?  ?  ?  ;  <  ?  ?  ?  ?  ?  ?  ?  ?  %  &  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8&  '  ?  @  A  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?     A  B  ?  ?  ?  ?  ?  ?  ?  ?  ?       B  C  L  M  N  ?  ?  ?  ?  ?  ?  ?  ?  "  #  N  O  P  ?  ?  ?  ?  ?         )  *  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8*  +  s  t  ?  ?  ?  ?  ?  @  A  ?  ?  ?  ?  ?  ?  ?  7  8  z  {  ?  ?  ?  ?  ?  &  '  (  m  n  ?  ?  ?  ?  ?  1  2  v  w  ?  ?      2  3  4  y  z  ?  ?        K  L  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8L  S  T  U  r  s  ?  ?  ?  ?  ?      _  `  ?  ?  ?  ?  -   .   Z   [   \   ?   ?   ?   ?   ?    !  !!  `!  a!  b!  c!  ?!  ?!  ?!  ?!  ?!  ?!  ?!  ?!  3"  4"  v"  w"  ?"  ?"  ?"  ?"  ?"  J#  K#  L#  ?#  ?#  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  8?#  ?#  ?#  ?#  ?#  ?#  ?#  $  $  '$  ($  )$  x$  y$  z$  ?$  ?$  %  %  M%  N%  ?%  ?%  ?%  ?%  ?%  ?%  ?%  ?%  =&  >&  W&  X&  Y&  ?&  ?&  ?&  ?&  ?&  '  '  '  '  '  +'  ,'  D'  E'  F'  ?'  ?'  ?'  ?'  ?'  ?'  ?'  3(  ????????????????????????????????????????????????????????  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  83(  4(  u(  v(  ?(  ?(  ?(  ?(  ?(  ')  ()  m)  n)  ?)  ?)  ?)  ?)  ?)  ;*  <*  =*  }*  ~*  ?*  ?*  ?*  ?*  /+  0+  L+  M+  ?+  ?+  ?+  ?+  ?+  ?+  ?+  3,  4,  {,  |,  ?,  ?,  ?,  ?,  ?????????????????????????????????????????????                                                                                                     ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  -?        [  ?  ?  ?  ?  ,  n  ?  ?  ?  8  W  X  Y  ?  ?  ?  ?  B  ?  ?  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?  ?  ?  ?  ?  :  l  m  n  ?  ?  ?    ]  ^  ?  ?  ?  ?  ?  	  	  9	  W	  y	  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     y	  z	  |	  ?	  ?	  ?	  ?	  
  e
  ?
  ?
  ?
  ?
  ?
        *  +  m  ?  ?  ?  ?  ?  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?  ?  ?          2  3  x  ?  ?  ?  +
  r
  ?
  ?
  ?
        B  r  s  ?  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?  ?  ?  ,  -  M  N  l  m  ?  ?  ?  !  a  ?  ?  ?  ?  ?      U  l  m  ?  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?  ?  :  }  ?  ?  ?  <  ?  ?  ?  ?  ?  &  '  @  A  ?  ?  ?  ?  ?  ?     B  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     B  ?  ?  ?  ?  ?       C  M  N  ?  ?  ?  ?  ?  #  O  P  ?  ?  ?      *  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     *  +  t  ?  ?  ?  A  ?  ?  ?  ?  8  {  ?  ?  ?  '  (  n  ?  ?  ?  2  w  ?  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?    3  4  z  ?      L  T  U  s  ?  ?  ?    `  ?  ?  .   [   \   ?   ?   ?   ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?   !!  a!  b!  c!  ?!  ?!  ?!  ?!  ?!  4"  w"  ?"  ?"  ?"  K#  L#  ?#  ?#  ?#  ?#  ?#  $  ($  )$  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     )$  y$  z$  ?$  %  N%  ?%  ?%  ?%  ?%  ?%  >&  X&  Y&  ?&  ?&  ?&  '  '  '  ,'  E'  F'  ?'  ?'  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     ?'  ?'  ?'  4(  v(  ?(  ?(  ?(  ()  n)  ?)  ?)  ?)  <*  =*  ~*  ?*  ?*  0+  M+  ?+  ?+  ?+  ?+  4,  ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?          ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?      ?     4,  |,  ?,  ?,  ?,  ?      ?      ?      ?                                                                                                                                                                                                                                                                                                                                                                                                                                              ?      ?      ?      ?     ?  ?,   ?  ?,        ?)    ????  ????3W      K        @??  Normal     a	                   " A@??? " Default Paragraph Font                      ?                                                                        ?@                                                                                                                                                                                                                                                                                  ??
  ???? 	     ?      F   Microsoft Word 6.0 Document 
   MSWordDoc    Word.Document.6 ?9?q                                                                                                                                                                                                                                                                                                                                                                                                                              


More information about the users mailing list