APPENDIX C: BANK STORAGE

       The layout of storage for a YBOS array is as follows:-

           +---------------------------+
           |       System Data         |
           +---------------------------+
           |  Indices for Named Banks  |
           +---------------------------+    |
           |       Named Bank          |    |
           +---------------------------+    |
           |       Named Bank          |    | Region of named banks
           +---------------------------+    |
           |       Named Bank          |    |
           +---------------------------+    |
           |                           |
           |       Free Space          |
           |                           |
           +---------------------------+    |
           |       Work Bank           |    |
           +---------------------------+    |
           |       Work Bank           |    | Region of work banks
           +---------------------------+    |
           |       Work Bank           |    |
           +---------------------------+    |


            Named banks are stored in the  low  index  part  of  each
       array,  sequentially  created banks having increasing indices,
       while work banks are stored from the high index  part  of  the
       array,  sequentially  created banks having decreasing indices.
       During garbage  collection  operations  named  banks  will  be
       shuffled  towards  decreasing indices while work banks will be
       shuffled towards increasing indices so as to maximise the free
       space.   Within each array the first words are used for system
       data, to which the user has limited access via function calls.

next page