public static void loadRegs(string line, IOrganismo o) { if (line == null) { return; } if (line.StartsWith("#REGS: ")) { string[] pars = line.Split(' '); for (int i = 0; i < pars.Length; i++) { string par = pars[i].Trim(); if (par.Contains("[")) { par = par.Substring(0, par.IndexOf("[")).Trim(); } if (par.Contains("X:")) { string letter = par.Substring(0, 1); string val = par.Substring(par.IndexOf(":") + 1); o.setReg(ALifeConsts.getLetterNumber(letter.ToCharArray()[0]), int.Parse(val)); } if (par.Contains("SP:")) { string val = par.Substring(par.IndexOf(":") + 1); o.setStartPoint(int.Parse(val)); } if (par.Contains("IP:")) { string val = par.Substring(par.IndexOf(":") + 1); o.ip = int.Parse(val) + 1; } } } }
private static int loadParams(Instruction instruction, string parms, IOrganismo o, int pos) { string[] pars = parms.Split(','); for (int i = 0; i < pars.Length; i++) { string par = pars[i].Trim(); if (par.Length > 0) { char p = par.ToCharArray()[0]; if (p >= 'A' && p <= 'Z') { o.setMemory(o.sp() + pos + i, ALifeConsts.getLetterNumber(p)); } else { o.setMemory(o.sp() + pos + i, int.Parse(par)); } } else { pos--; } } return(pos + pars.Length); }