public static void KomandosPatikrinimas() //Komandos skaitymas ir tikrinimas { var Zodziai = RMKomanda.Split(' '); if (Zodziai[0] == "STARTC") { VirtualiMasina.CMDRezimas(); } else if (Zodziai[0] == "STARTV") //STARTV paskutini kart neveike dar del kazko, bet kolkas nelabai reiks { FailoVardas = Zodziai[1]; VirtualiMasina.VRezimas(); } else { if (Zodziai.Length > 2) { Console.WriteLine("Ivesta komanda:" + Zodziai[0]); RealiMasina.IC++; int numVal1 = Int32.Parse(Zodziai[0]); int numVal2 = Int32.Parse(Zodziai[1]); int numVal3 = Int32.Parse(Zodziai[2]); Commands.a = numVal1; Commands.Vykdom(numVal2, numVal3); } else { Console.WriteLine("Įvesta per mažai argumentų"); RealiMasina.IC++; RealiMasina.PI = 1; RealiMasina.PertraukimuTikrinimas(); } } }
public static void CMDRezimas() { RealiMasina.MODE = 1; //Keiciamas registras MODE Console.WriteLine("Pradedama virtuali masina CMD režimu"); CMDKomanda = Console.ReadLine(); var kint = CMDKomanda.Split(' '); while (kint[0] != "HALT") //Cia visada veikia Virtuali masina iki HALT { if (kint.Length > 2) { Console.WriteLine("Ivesta komanda:" + kint[0]); RealiMasina.IC++; int numVal1 = Int32.Parse(kint[0]); int numVal2 = Int32.Parse(kint[1]); int numVal3 = Int32.Parse(kint[2]); Commands.a = numVal1; RealiMasina.IOI = 1; RealiMasina.CH1 = 1; Commands.Vykdom(numVal2, numVal3); RealiMasina.CH1 = 0; RealiMasina.IOI = 0; RealiMasina.PertraukimuTikrinimas(); CMDKomanda = Console.ReadLine(); kint = CMDKomanda.Split(' '); } else { Console.WriteLine("Įvesta per mažai argumentų"); RealiMasina.IC++; RealiMasina.PI = 1; RealiMasina.PertraukimuTikrinimas(); } if (RealiMasina.MODE == 0) { kint[0] = "HALT"; } } Console.WriteLine("Vistuali masina sustabdoma"); }