private static IMemorizable[] GetIMemorizablesFromCommand(string cmd, ApplicationContext context)
        {
            IMemorizable GetMemorizableFromAssembly(string ass)   // FUNCTION
            {
                Register reg;

                if ((reg = context.Registers.Find(r => r.Name == ass)) != null)
                {
                    return(reg);
                }

                if (ass.IndexOf('[') < ass.IndexOf(']') && ass.IndexOf('[') != -1)
                {
                    // TODO Byte / Word

                    IMemorizable indirect = CheckForIndirectReference(ass.BetweenSubstring("[", "]"), context);

                    if (indirect != null)
                    {
                        return(indirect);
                    }

                    MemoryRangePointer pointer =
                        context.MainMemory.ExtractMemoryPointer(ass.BetweenSubstring("[", "]").ToInt(), 2);

                    return(pointer);
                }

                MySupport.NormalizeValueString(ref ass);

                return(new ImmediateNumber(MySupport.GetBytesArrayFromString(ass), true));
            }

            var memorizables = new IMemorizable[2];

            var splits = cmd.Split(',');

            for (int i = 0; i < splits.Length; i++)
            {
                splits[i] =
                    splits[i].Substring(splits[i].IndexOf(' ') != -1 ? splits[i].IndexOf(' ') : 0).TrimStart().TrimEnd();
                memorizables[i] = GetMemorizableFromAssembly(splits[i]);
            }

            return(memorizables);
        }
        private void UCommand(IReadOnlyList <string> debugCommandParameters, params string[] input)
        {
            if (debugCommandParameters.Count != 1)
            {
                return;
            }
            int index = int.Parse(debugCommandParameters[0], NumberStyles.HexNumber);

            MemoryRangePointer pointer = context.MainMemory.ExtractMemoryPointer(index, 50);

            var indexList = new List <int>();

            List <AssemblableCommand> cmds = Disassembler.MultiCommandDisassembler(context, pointer, ref indexList);

            for (var i = 0; i < cmds.Count; i++)
            {
                AssemblableCommand cmd = cmds[i];
                if (cmd.ToString().TrimEnd() != "????")
                {
                    Console.WriteLine($"{(indexList[i] + index):X4} => {cmd.ToString()}");
                }
            }
        }