public static void XB() { Console.Write("Start programu"); Format.CWrite(ConsoleColor.Cyan, " XB"); Console.WriteLine(""); int r = 0; if (rejestry.r2.GetType() == typeof(int)) { r = Mem.MEMORY[(int)rejestry.r2]; r = r << 8; r += Mem.MEMORY[(int)rejestry.r2 + 1]; } if (podreczna == 1) r = 256; int a; if (usuwanie == 1) { a = Mem.MEMORY[(int)rejestry.r2 + 2]; a = a << 8; a += Mem.MEMORY[(int)rejestry.r2 + 3]; usuwanie = 0; } else a = (int)rejestry.r3; FSB fsb = new FSB(a + r, 65535, 65535 - (a + r - 1)); if (FSB_LIST.Count == 1) { FSB_LIST.Clear(); FSB_LIST.Add(fsb); Console.WriteLine("Dołączono nowy blok do listy bloków FSB, adres: " + (a + r) + "-" + 65535 + ", rozmiar: " + (65535 - (a + r - 1))); Console.WriteLine(""); } else { int tmp = 0; int tmp1 = 0; for (int i = 0; i < FSB_LIST.Count; i++) { if (FSB_LIST[i].pocz == a) { tmp = FSB_LIST[i].koniec; FSB_LIST.RemoveAt(i); if (a + r == FSB_LIST[i].koniec) tmp1 = 1; } } if (tmp1 == 0) { fsb = new FSB(a + r, tmp, tmp - (a + r - 1)); FSB_LIST.Add(fsb); Console.WriteLine("Dołączono nowy blok do listy bloków FSB, adres: " + (a + r) + "-" + tmp + ", rozmiar: " + (tmp - (a + r - 1))); Console.WriteLine(""); } if (tmp1 == 0) { for (int i = 0; i < FSB_LIST.Count; i++) { if (FSB_LIST[i].koniec == FSB_LIST[i + 1].pocz - 1) { int pocz, konie, roz; pocz = FSB_LIST[i].pocz; konie = FSB_LIST[i + 1].koniec; roz = FSB_LIST[i].wielkosc + FSB_LIST[i + 1].wielkosc; FSB_LIST.RemoveAt(i); FSB_LIST.RemoveAt(i + 1); fsb = new FSB(pocz, konie, roz); FSB_LIST.Add(fsb); Console.WriteLine("Dołączono nowy blok do listy bloków FSB, adres: " + pocz + "-" + konie + ", rozmiar: " + roz); Console.WriteLine(""); } } } var sortedList = FSB_LIST.OrderBy(x => x.wielkosc).ToList(); FSB_LIST = sortedList; Console.WriteLine("Przesortowano liste bloków FSB"); } }
public static bool start(int i) { FSB free = new FSB(i, 65535, 65536 - i); FSB_LIST.Add(free); Console.Write("\nDołączono pierwszy nowy blok do listy bloków FSB, adres: " + i + "-" + 65535 + ", rozmiar: " + (65536 - i)); return true; }