Пример #1
0
    public void PC_CE()
    {
        if (bits < 15)
        {
            bits++;
        }
        else
        {
            bits = 0;
        }

        int[] bits_to_intArray = externalFunc.convertIntToIntArray(bits, pcBits.Length);
        Array.Reverse(bits_to_intArray);
        for (int i = 0; i < bits_to_intArray.Length; i++)
        {
            pcBits[i] = bits_to_intArray[i];
            if (bits_to_intArray[i] == 1)
            {
                pcBitGameObj[i].GetComponent <Renderer>().material.SetColor("_Color", Color.green);
            }
            else
            {
                pcBitGameObj[i].GetComponent <Renderer>().material.SetColor("_Color", Color.white);
            }
        }
    }
    private void InitProgram()
    {
        for (int i = 0; i < codes.Count; i++)
        {
            string opcode = codes[i].Split(' ')[0];
            int[]  memloc = externalFunc.convertIntToIntArray((Convert.ToInt32(codes[i].Split(' ')[1])), MEM_SIZE);

            int[] opcode_memaddr = externalFunc.concatArr(microcodeDict[opcode], memloc);
            RAM.initRam(i, opcode_memaddr);
        }
    }
Пример #3
0
    public void updateDIPBits()
    {
        int[] addr_to_int = externalFunc.convertIntToIntArray(memoryAddress, MEM_SIZE);
        Array.Reverse(addr_to_int); // MSB first

        for (int i = addr_to_int.Length - 1; i >= 4; i--)
        {
            bits[i] = addr_to_int[i];
            if (addr_to_int[i] == 1)
            {
                fourDipBits[i - 4].GetComponent <Renderer>().material.SetColor("_Color", Color.yellow);
            }
            else
            {
                fourDipBits[i - 4].GetComponent <Renderer>().material.SetColor("_Color", Color.white);
            }
        }
    }
Пример #4
0
    // EO = sum for ALU of Reg A and Reg B
    public void ALU_EO(bool add, bool sub)
    {
        int t = arithmeticRegisterContents(0, 1, add, sub); // add true, sub false

        int[] res = externalFunc.convertIntToIntArray(t, 8);
        Array.Reverse(res); // reverse to MSB first

        for (int i = 0; i < 8; i++)
        {
            bits[i] = res[i];
            if (res[i] == 1)
            {
                gameObjBits[i].GetComponent <Renderer>().material.SetColor("_Color", Color.red);
            }
            else
            {
                gameObjBits[i].GetComponent <Renderer>().material.SetColor("_Color", Color.white);
            }
        }

        busModule.writeToBus(bits, END, OFFSET);
    }