/// <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; } }