/// <summary>
 /// <para>Constructor for BANK.</para>
 /// <para>size : number of words in the bank.</para>
 /// <para>E-B is 256 - F-B is 1024</para>
 /// </summary>
 /// <param name="type">1-ERASABLE 0-FIXED</param>
 /// <param name="id">Register bank ID</param>
 /// <param name="SB">FEB value if applicable</param>
 /// <param name="file">The binary file to read/write.</param>
 public BANK(bool type, short id, int SB, String file)
 {
     is_ErType = type;
     AGC_file = file;
     FEB = SB;
     bank_id = id;
     byte[] bytestr = new byte[16];
     FileStream fs = File.Open (AGC_file, FileMode.OpenOrCreate);
     if (is_ErType) {
         size = 256;
     } else {
         size = 1024;
     }
     base_address ();
     MEM_ARRAY = new short[size];
     int j = 0;
     for (int i = 0; i < size; i++) {
         if (b_adress + j + 16 <= fs.Length) {
             fs.Seek (b_adress + j, SeekOrigin.Begin);
             fs.Read (bytestr, 0, 16);
             Array.Reverse (bytestr); //reversing the array so it's in good order
             temp = new sWord (bytestr);
             MEM_ARRAY [i] = temp.getHex ();
             j += 16;
         } else {   //if memory emplacement is empty in file (shouldn't), replace by zero.
             MEM_ARRAY [i] = 0x0;
         }
     }
     if (fs != null) {
         fs.Close ();
         fs.Dispose ();
     }
 }
 public int set_sword(short offset_index, sWord word)
 {
     if (is_ErType | compiling)
     {
         MEM_ARRAY[offset_index] = word.getHex();
         return 0;
     }
     else
     {
         return 1;
     }
 }