home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / devs&handlers / msh_382 / doc / msh.man < prev    next >
Text File  |  1990-10-20  |  24KB  |  529 lines

  1.  
  2.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  3.  
  4.  
  5.  
  6.      ›1mSYNOPSYS 
  7.           ›0mMount MSH: 
  8.  
  9.           MSH:<any valid file specification>, or just 
  10.           <any  valid file specification> if your current directory is
  11.           somewhere on MSH:.  
  12.  
  13.      ›1mUSAGE 
  14.           ›0mMSH: is a real Amiga-style File System handler that  handles
  15.           messydos formatted  diskettes.    You  can use files on such
  16.           messydos disks in almost exactly the same  way  as  you  use
  17.           files on normal Amiga disks.  
  18.  
  19.           Supported  are  40  or  80  tracks,  double-sided 8, 9 or 10
  20.           sector floppy disks, and harddisks with a 12 or  16-bit  FAT
  21.           of any   dimension   the  FAT  allows.    (Due  to  lack  of
  22.           availability, I have not been able  to  test  MSH:  on  hard
  23.           disks; proceed with extreme caution).  
  24.  
  25.      ›1mINSTALLATION 
  26.           ›0mBelow is  given  a  Mountlist entry.  You can append this to
  27.           your system's default Mountlist (DEVS:Mountlist), or to  any
  28.           other  Mountlist  you  mention with the Mount command: Mount
  29.           FROM SomeMountlist, as supported by Commodore  1.3  and  Arp
  30.           1.3 Mount  commands.    You must put the messydisk.device in
  31.           DEVS:, and the file MessyFileSystem in L:. You can put these
  32.           files in other locations, provided you adapt the file  names
  33.           in the Mountlist accordingly.  
  34.  
  35.      ›1mMOUNTLIST 
  36.           ›0mA  sample Mountlist entry, that works with the Arp 1.3 Mount
  37.           command: (It will also work with other versions of the Mount
  38.           command, but may  need  minor  changes.    For  1.2,  change
  39.           FileSystem to Handler.) 
  40.  
  41.           /*
  42.            *  Messy file system on messy blocks:
  43.            */
  44.           MSH:    FileSystem = L:MessyFileSystem
  45.                   Device = messydisk.device
  46.                   Unit = 1
  47.                   Flags = 0
  48.           /*
  49.            *  HighCyl is ignored, LowCyl, Surfaces, BlocksPerTrack
  50.            *  and Reserved are used once to find the bootblock.
  51.            *  Further parameters are found there.
  52.            */
  53.                   LowCyl = 0 ; HighCyl = 79
  54.                   Reserved = 0
  55.                   Surfaces = 2
  56.                   BlocksPerTrack = 9
  57.           /*
  58.            *  Initially the disk cache will be 5 sectors.
  59.            */
  60.                   Buffers = 5
  61.  
  62.  
  63.  
  64.  
  65.      Rhialto, KosmoSoft               -1-                 Version 34.8/1.30
  66.  
  67.  
  68.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  69.  
  70.  
  71.           /*
  72.            *  If DosType is set to 1, MSH: will wait for DFx: (where
  73.            *  x depends on the Unit parameter above) to recognize
  74.            *  inserted disks (or not).
  75.            */
  76.                   DosType = 1
  77.           /*
  78.            *  Use BufMemType = 3 [for MEMF_CHIP | MEMF_PUBLIC] if you
  79.            *  use MSH: on the trackdisk.device.
  80.            */
  81.                   BufMemType = 1
  82.                   BootPri = 0
  83.                   Stacksize = 3072
  84.                   Priority = 9
  85.                   GlobVec  = -1
  86.           /*
  87.            *  Immediately load and start the MessyFileSystem
  88.            *  when started.
  89.            */
  90.                   Mount = 1
  91.           #
  92.  
  93.           This  Mountlist  entry  instructs MSH: to use floppy unit 1,
  94.           i.e.  DF1: and the messydisk.device.   You  may  choose  any
  95.           name instead  of  MSH:  that  you like.  For this case, MS1:
  96.           would also be a sensible choice.  You can read the  separate
  97.           manual page  about  messydisk.device.   It is supposed to be
  98.           possible to use MSH: on a harddisk by supplying  the  proper
  99.           device name  and  unit  number.  If you wish to use floppies
  100.           truly compatible with those messy machines, you  should  use
  101.           the messydisk.device.    You  cannot  change  this name into
  102.           something else.  It is also supposed  to  work  on  40-track
  103.           drives, but this has not been tested by me.  
  104.  
  105.           The  Mountlist  entries LowCyl, Surfaces, BlocksPerTrack and
  106.           Reserved are used once to  determine  the  location  of  the
  107.           messydos bootblock.  Disk blocks of 512 bytes are assumed in
  108.           this calculation.    The  block  number  of the bootblock is
  109.           calculated  as  ›3m(LowCyl  *  Surfaces  *  BlocksPerTrack)   +
  110.           Reserved.  ›0mFurther  information  is  then  obtained from the
  111.           bootblock (see below).  
  112.  
  113.           The DosType parameter indicates whether MSH: should be  nice
  114.           to  another file system which happens to use the same floppy
  115.           drive.  More about this below.  Using floppies, you'll  want
  116.           to set DosType to 1, for use with harddisks 0 is needed.  
  117.  
  118.      ›1mCOMPATIBILITY 
  119.           ›0m-  Even  though MSH: uses one of your floppy drives, you may
  120.           still use that drive for  normal  Amiga  disks.    You  will
  121.           notice  that  when  you  insert  a disk in the drive used by
  122.           MSH:, both MSH: and the regular Amiga  file  system  handler
  123.           may attempt  to  identify the disk.  The result will be that
  124.           one of the two will be unable to read it, and then leave  it
  125.           alone so that the other may use it.  
  126.  
  127.           The  DosType parameter indicates whether MSH: should be nice
  128.           to another file system which happens to use the same  floppy
  129.  
  130.  
  131.      Rhialto, KosmoSoft               -2-                 Version 34.8/1.30
  132.  
  133.  
  134.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  135.  
  136.  
  137.           drive.   Because  this can only be DF0:, DF1:, DF2: or DF3:,
  138.           MSH: can derive the  name  from  the  Unit  parameter.    If
  139.           DosType  is  set  to  1,  MSH:  will  wait for DFx: (where x
  140.           depends on the Unit parameter) to recognize inserted  disks.
  141.           If  it recognizes an inserted disk as an AmigaDOS disk, MSH:
  142.           will conclude that it should not even attempt to access  the
  143.           disk.  If DFx: only notices that some disk has been inserted
  144.           but  does  not think it is an AmigaDOS disk, MSH: goes ahead
  145.           and tries to identify it.  If  DFx:  has  not  reached  some
  146.           conclusion  after  approximately  7.5 seconds, MSH: does not
  147.           wait any longer, and attempts identification anyway.  
  148.  
  149.           If DosType is not set, both MSH: and DFx: will try to access
  150.           the disk at the same time.  Only one of the two can succeed,
  151.           but in the mean time they may have a violent fight about the
  152.           control of the disk drive.  
  153.  
  154.           For harddisk(partition)s, there is probably  no  other  file
  155.           system  that MSH: must wait for, so DosType should be set to
  156.           0.  
  157.  
  158.           - It is recommended that you don't attempt to refer to  MSH:
  159.           while other filesystems are trying to read the disk.  
  160.  
  161.           -  In some situations where there are multiple errors at the
  162.           same time (such as trying to delete a non-existent file from
  163.           a write-protected disk), the error reported may be different
  164.           than the regular file system.  
  165.  
  166.      ›1mEXTENSIONS 
  167.           ACTION›0m_›1mDIE 
  168.  
  169.           ›0mThe packet ›3mACTION_DIE ›0mis supported, and even has the  result
  170.           of stopping  MSH:  and unloading the file system code.  This
  171.           is convenient when you don't need to use MSH:  for  a  while
  172.           and helps  you  to conserve memory.  A program called ›3mdie ›0mis
  173.           supplied that sends the ACTION_DIE packet to any handler you
  174.           wish.  ›3m(usage: die MSH:) ›0mIf there  is  any  program  running
  175.           that  expects MSH: to remain present even while there are no
  176.           open or locked files on MSH:, it may be dangerous to  remove
  177.           MSH:.  Unfortunately,  one such program is the Workbench, so
  178.           you should not kill MSH: if  you  also  have  the  Workbench
  179.           running.  
  180.  
  181.           ›1mACTION›0m_›1mMORECACHE 
  182.  
  183.           ›0mMSH:  handles  the  packet  ›3mACTION_MORECACHE  ›0m(used  by  the
  184.           AddBuffers command) and cache  buffers  more  intelligently.
  185.           When  you  add buffers, the required memory is not allocated
  186.           immediately, but gradually as there becomes a  use  for  it.
  187.           When  you remove a disk its buffers are no longer of use and
  188.           therefore are all freed and  returned  to  the  free  memory
  189.           pool.   And,  what  is  more important, you can decrease the
  190.           maximum number of buffers.  By specifying a negative  number
  191.           you reduce  the  number of buffers.  If your AddBuffers does
  192.           not like negative buffer counts, simply  add  65536  to  the
  193.           (negative) number  you  actually  intend.  So, instead of -1
  194.           you can also specify 65535, -2 is 65534. You  wouldn't  want
  195.  
  196.  
  197.      Rhialto, KosmoSoft               -3-                 Version 34.8/1.30
  198.  
  199.  
  200.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  201.  
  202.  
  203.           to add more than 32767 buffers at once anyway.  
  204.  
  205.      ›1mLIMITATIONS 
  206.           ›0mDue  to  the  difference  between messydos and AmigaDOS file
  207.           systems, not all operations that  are  available  for  Amiga
  208.           files can be applied to messydos files.  
  209.  
  210.           ›1mFile names 
  211.  
  212.           ›0mThe   most  eye-catching  difference  are  the  file  names:
  213.           messydos file names can be at most "8 + 3" characters  long.
  214.           This  means  that  the  "base"  part of the file name may be
  215.           eight characters long, maybe followed by  a  three-character
  216.           "extension",  which  is  separated from the base name with a
  217.           period ('.'). Also, you cannot use  all  characters  in  the
  218.           file  names  you  wish, but the charater choice is basically
  219.           limited to the uppercase letters A-Z, digits 0-9,  and  most
  220.           "punctuation" characters  except  space * ?  . < > / = | , :
  221.           and \.  
  222.  
  223.           MSH: will try to map  file  names  that  you  or  a  program
  224.           attempts to use to names that are actually allowed.  But for
  225.           utmost  flexibility,  only  the  most  basic limitations are
  226.           enforced:  the  length  of   the   name   (8+3),   uppercase
  227.           alphabetics,  and  the  presence  of  only one period in the
  228.           name.  This means that you might create file  names  that  a
  229.           messydos  computer  does  not  correctly know how to handle.
  230.           But care has been taken that in no case it would be possible
  231.           to create a file name that, once created, cannot be  handled
  232.           anymore  by MSH:. You can always refer to that file with the
  233.           same name you used before, even if MSH: changed it for you.  
  234.  
  235.           ›1mSpecial directories ›0m. ›1mand ›0m.. 
  236.  
  237.           On messydos floppies, every  subdirectory  has  two  special
  238.           entries called  "."    and "..". They refer to the directory
  239.           itself and its "parent" directory, respectively.    Programs
  240.           that  traverse directory trees on messydos systems take care
  241.           to skip these "subdirectories", since they  really  are  not
  242.           "sub" direcories and recursively entering them would lead to
  243.           nothing but  trouble.    (Their  presence  prevents the file
  244.           system from have a tree structure.) But  with  AmigaDOS  1.3
  245.           and  before,  no  such  "hard  links"  exist,  and directory
  246.           traversing  programs  would  not  hesitate  to  enter  them.
  247.           Therefore, they  are  ›3mcompletely  ›0mhidden  from  sight.   You
  248.           cannot see them in directory listings nor refer to  them  by
  249.           any name.  
  250.  
  251.           But  even  while  it  is hidden, the ".." entry is of course
  252.           still updated to reflect the new  parent  directory  when  a
  253.           directory is  renamed  and  moved.    Note, by the way, that
  254.           moving directories is an operation that is not supported  by
  255.           messydos itself.  
  256.  
  257.           Of  course,  the  usual  methods  of  accessing  the current
  258.           directory (the empty name "") and the parent directory ("/")
  259.           do work.  
  260.  
  261.  
  262.  
  263.      Rhialto, KosmoSoft               -4-                 Version 34.8/1.30
  264.  
  265.  
  266.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  267.  
  268.  
  269.           It may be  that  in  the  future,  when  softlinks  will  be
  270.           included in AmigaDOS, these "." and ".." directories will be
  271.           made visible  again, but in the disguise of a soft link.  In
  272.           that case, programs which don't  know  how  to  handle  them
  273.           should   either  not  exist  anymore  or  ignore  the  links
  274.           themselves.  
  275.  
  276.           ›1mFilenotes 
  277.  
  278.           ›0mMessydos has no provision for file notes and therefore  they
  279.           cannot be supported.  
  280.  
  281.           ›1mFile protection bits vs›0m.  ›1mfile attributes 
  282.  
  283.           ›0mCurrently,  the  following  interpretation  of messydos file
  284.           attributes is performed.    The  Directory  and  Volumelabel
  285.           attributes  are  honored  to  make  these  directory entries
  286.           different from plain files.  
  287.           The HIDDEN and SYSTEM attributes are mapped to the  H(idden)
  288.           bit.   The  H  bit  is  mapped  to the HIDDEN attribute; the
  289.           SYSTEM attribute cannot be changed.  
  290.           The  READ-ONLY  attribute  is  mapped  to  the  W(rite)  and
  291.           D(elete) bits.   Inversely, if a file is set to either Write
  292.           or Delete protected, the READ-ONLY attribute is set.  
  293.           The ARCHIVE bit, when clear, sets the A(rchived)  bit.    On
  294.           messydos  the  ARCHIVE  attribute  means (when set) that the
  295.           file MUST be backed up (by a backup program).  A write to  a
  296.           file sets  the  ARCHIVE attribute.  On AmigaDOS the Archived
  297.           bit means  (when  set)  that  the  file  has  been  archived
  298.           already.   A  write to a file clears the Archived protection
  299.           bit.  
  300.  
  301.           ›1mBoot block format 
  302.  
  303.           ›0mMSH: relies on the information in the boot  block  regarding
  304.           the  number of bytes per block, blocks per track, tracks per
  305.           cylinder, blocks per cluster, etc.  The physical information
  306.           is not actually used to access  the  disk,  except  for  the
  307.           number  of  tracks  which is derived from other information.
  308.           It is used to decide if a 40 track disk is inserted in a  80
  309.           track drive.   Single  sided  disks  are not supported.  The
  310.           number of sectors may  be  whatever  the  underlying  device
  311.           driver supports.  (With messydisk.device this is 8, 9 or 10;
  312.           with  trackdisk.device  it  is  11). Only the logical layout
  313.           information is used: Size of a  block,  number  of  reserved
  314.           blocks,  number of FATs, number of blocks per FAT, number of
  315.           root directory entries, number of blocks per cluster.    The
  316.           total  number of blocks is used to determine the usable part
  317.           of the disk.  (If the FAT  says  "use  a  block  beyond  the
  318.           limit", this error is not detected).  
  319.  
  320.           If  you format a disk on a messydos computer and wish to use
  321.           it with MSH:, be sure to use a messydos version  new  enough
  322.           to write  this  information in the boot block.  (Version 3.2
  323.           works nicely for me.) If you wish to format such a  disk  on
  324.           your  Amiga,  you  can  use  PCF720  by  Werner Günther with
  325.           pcFormat on the Extras disk, or use  the  supplied  messyfmt
  326.           program.  
  327.  
  328.  
  329.      Rhialto, KosmoSoft               -5-                 Version 34.8/1.30
  330.  
  331.  
  332.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  333.  
  334.  
  335.  
  336.           Atari  diskettes may have a different boot block, which does
  337.           not contain the information that MSH: requires.  On  such  a
  338.           disk,  you  can  rewrite  the  bootblock  using  the program
  339.           Messyfmt (see below).  
  340.  
  341.           Some messydos computers have 80-track floppy drives, but the
  342.           FORMAT command does  not  know  that.    If  you  format  an
  343.           80-track  floppy  on such a system, it is possible that only
  344.           40 tracks get formatted, and even the 'wrong' 40 tracks: the
  345.           outer 40 tracks instead of every other track.  If you insert
  346.           such a disk in an MSH: drive, then MSH: knows that the  disk
  347.           uses  only  40  tracks,  but  wrongly  thinks it must use or
  348.           simulate a 40 track drive.  The result is that the files  on
  349.           that  disk seem to contain garbage, or parts of other files.
  350.           To correct this situation, you can access the  special  file
  351.           name  "MSH::F-" (the F must be in uppercase) each time after
  352.           you insert that particular disk.  On  the  other  hand,  the
  353.           name  "MSH::F+"  forces MSH: to use 40 track drive emulation
  354.           mode.  
  355.  
  356.           ›1mFAT 
  357.  
  358.           ›0mThe  FAT  is  currently  not  checked  for   integrity   and
  359.           consistency.   The  FAT is assumed to have 12-bit entries if
  360.           the disk has at most 4086 ($FF6) clusters.  If the disk  has
  361.           more  clusters  than  that,  16 bit FAT entries are assumed.
  362.           This is the method that seems to be used by messy dos 3.0.  
  363.  
  364.           ›1mWorkbench 
  365.  
  366.           ›0mThe Workbench wants to use filenames that are impossible  on
  367.           messydos floppies.    (.info  extension) It is therefore not
  368.           very effective to try to use Workbench on MSH:.  
  369.  
  370.           ›1mVolume label 
  371.  
  372.           ›0mNormal AmigaDOS floppies have a part of  the  disk  reserved
  373.           for their  name.  With messydos floppies a name is optional,
  374.           and should be in the directory in an entry with the  special
  375.           flag  (attribute)  Volumelabel.  MSH:  looks  in  the  first
  376.           directory block only to locate such  a  volume  label.    If
  377.           found,  it  decides  the name of the disk; if not found, the
  378.           name will become "Unnamed" and the creation date will become
  379.           1-Jan-80. Note that AmigaDOS (and MSH:) keep disks apart  by
  380.           their name  and  creation  date.  As a result, all unlabeled
  381.           disks,  (and  all  disks  with  the  same  name)  will  look
  382.           equivalent and  cannot  be  distinguished.   It is therefore
  383.           strongly recommended that you  provide  every  disk  with  a
  384.           unique  volume  label; the standard AmigaDOS command Relabel
  385.           can be used for this.  If you label a disk that had no label
  386.           (in the first directory sector) before,  MSH:  will  try  to
  387.           move a file from the first directory block to somewhere else
  388.           in the  root  directory.    If  this  is  not  possible, for
  389.           instance because  the  root  directory  is  full,  then  the
  390.           labeling will fail as well.  
  391.  
  392.  
  393.  
  394.  
  395.      Rhialto, KosmoSoft               -6-                 Version 34.8/1.30
  396.  
  397.  
  398.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  399.  
  400.  
  401.           ›1mMultiple file systems 
  402.  
  403.           ›0mThe  MessyFileSystem  is  unfortunately  not  ``pure''. This
  404.           means that if you wish to mount multiple messy file systems,
  405.           you must make a copy of MessyFileSystem for each  of  these,
  406.           and mount each one from one of the separate copies.  Running
  407.           two  file  systems  from the same disk file will cause great
  408.           troubles.  (Oh well, maybe AmigaDOS is not so smart  to  see
  409.           that  two file systems share the same FileSystem name in the
  410.           Mountlist, so maybe you don't need to have  multiple  copies
  411.           of MessyFileSystem  on  your  disk.    Try at your own risk.
  412.           AmigaDOS behaviour might change in the future, of course.) 
  413.  
  414.      ›1mUTILITIES 
  415.           ›0mA program called ›3mmessyfmt ›0mallows  you  to  format  disks  in
  416.           messydos format.  
  417.  
  418.           Usage: Messyfmt <unitnr> <device> 
  419.  
  420.           The    <device>   name   is   optional   and   defaults   to
  421.           "messydisk.device". The program asks for all  parameters  to
  422.           put in the bootblock, like 
  423.  
  424.           Bytes per sector?  [512] 
  425.  
  426.           If  you  just  hit  return  you  accept  the  default value,
  427.           otherwise you can enter a new value in the  usual  notation:
  428.           0x  =  hexadecimal,  0  =  octal,  and  everything  else  is
  429.           decimal.  A  few  suffixes  are  allowed  as  multiplication
  430.           factor:  m  =  mega  (1048576), k = kilo (1024), s = sectors
  431.           (512) and b = byte (1). (Not all terms make sense  with  all
  432.           questions.)  You  may  create  8,  9  or  10 sector disks by
  433.           answering the question "Sectors per track" appropriately.  
  434.           You are also asked if you wish to format the whole disk, and
  435.           if not, if you want to write  only  the  bootblock,  or  the
  436.           bootblock, FAT and directory.  
  437.           Finally, to see if you are still awake, you must enter 42 if
  438.           you are sure to do it.  
  439.           After  formatting  has  completed,  you must remove the disk
  440.           from the drive, in order to  let  all  involved  filesystems
  441.           know that the disk just died and reincarnated.  
  442.  
  443.           Hint: If you want to format a 40 track floppy in an 80 track
  444.           drive,  it  is  probably  easiest to first format it with 80
  445.           tracks, and then re-format just the bootblock.    Only  then
  446.           you need to give the correct values for 40 tracks.  
  447.  
  448.           ›3mDiskCopy  ›0mcan  be  used to copy messydos disks, provided you
  449.           have one or more file systems mounted.  Note, however,  that
  450.           DiskCopy looks at the disk size information as it is present
  451.           in  the  Mountlist.  Therefore  DiskCopy  will  not copy the
  452.           entire disk if it is 10-sector while the Mountlist claims it
  453.           is 9-sector. In the opposite situation, it will try to  copy
  454.           too  much  which will result in read errors, which may cause
  455.           the last track not to be copied.  You can construct  special
  456.           Mountlist  entries  for  8 or 10 sector disks if you plan to
  457.           DiskCopy them; there is no need to really  mount  these  for
  458.           normal use.  
  459.  
  460.  
  461.      Rhialto, KosmoSoft               -7-                 Version 34.8/1.30
  462.  
  463.  
  464.      MSH:(FileSystems)     Amiga Programmer's Manual      MSH:(FileSystems)
  465.  
  466.  
  467.      ›1mSUGGESTIONS 
  468.           ›0mThe   things   I   mention   here   are  merely  interesting
  469.           suggestions.  They have not all been tried.   If  they  work
  470.           for you, or if you think of some more, please let me know.  
  471.  
  472.           Since  you can use any disk-type device under MSH:, you need
  473.           not necessarily use  messydisk.device,  but  you  could  use
  474.           trackdisk.device  (the  normal Amiga disk driver), some kind
  475.           of harddisk.device or jdisk.device (for  use  with  messydos
  476.           partitions  on bridgeboards), or Matt Dillons fmsdisk.device
  477.           (a file disguised as a disk device, if you have  a  messydos
  478.           disk  in an AmigaDOS file for JLink). I have heard of a case
  479.           where an  Amiga  drive  with  MSH:  was  accessed  from  the
  480.           BridgeBoard though JLink.  
  481.  
  482.      ›1mTRADEMARKS 
  483.           ›0mAmiga,     AmigaDOS,    Workbench    are    trademarks    of
  484.           Commodore-Amiga, Inc. Messydos is presumably a trademark  of
  485.           MessySoft, Inc.  
  486.  
  487.      ›1mAUTHOR 
  488.           ›0mThe  messy  file system handler is written by ›3mSourcerer ›0mOlaf
  489.           ›3mRhialto ›0mSeibert.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.      Rhialto, KosmoSoft               -8-                 Version 34.8/1.30
  528.  
  529.