Ejemplo n.º 1
0
 public void callGlkFunc(AdressModeData[] data)
 {
     int id = data[0].read();
     int numargs = data[1].read();
     int[] args = new int[numargs];
     for (int i=0; i<args.Length; ++i)
     {
         args[i] = reader.pull();
     }
     glkFunctionData dat = getData(id);
     data[2].write(dat.call(args));
 }
Ejemplo n.º 2
0
 public static void negate(AdressModeData[] values)
 {
     values[1].write(-values[0].read());
 }
Ejemplo n.º 3
0
 public static void multiply(AdressModeData[] values)
 {
     values[2].write(values[0].read() * values[1].read());
 }
Ejemplo n.º 4
0
 public static void modulus(AdressModeData[] values)
 {
     values[2].write(values[0].read() % values[1].read());
 }
Ejemplo n.º 5
0
 public static void devide(AdressModeData[] values)
 {
     values[2].write(values[0].read() / values[1].read());
 }
Ejemplo n.º 6
0
 public static void copy(AdressModeData[] values)
 {
     values[1].write(values[0].read());
 }
Ejemplo n.º 7
0
 public static void bitxor(AdressModeData[] values)
 {
     values[2].write(values[0].read() ^ values[1].read());
 }
Ejemplo n.º 8
0
 public static void bitshiftr(AdressModeData[] values)
 {
     values[2].write(values[0].read() >> values[1].read());
 }
Ejemplo n.º 9
0
 public static void bitnot(AdressModeData[] values)
 {
     values[1].write(values[0].read()^-1);
 }
Ejemplo n.º 10
0
 public static void add(AdressModeData[] values)
 {
     values[2].write(values[0].read() + values[1].read());
 }
Ejemplo n.º 11
0
 public static void substract(AdressModeData[] values)
 {
     values[2].write(values[0].read() - values[1].read());
 }
Ejemplo n.º 12
0
 void setIOSystem(AdressModeData[] values)
 {
     ioSysData.system = (IOsys)values[0].read();
     ioSysData.rock = values[1].read();
 }
Ejemplo n.º 13
0
        AdressModeData[] getAddrData(OpcodeData data, int startPos, bool setParsePos)
        {
            int inputv = data.numInVariables;
            int outputv = data.numOutVariables;
            AdressModeBase[] output = new AdressModeBase[inputv + outputv];
            int parseIndex=0;

            for (int k = 0; k < (inputv + outputv); k++) //I is set elsewhere
            {

                parseIndex = (k) / 2;
                byte value;
                if (k % 2 == 0)
                {
                    value = (byte)(mainMemory[parseIndex + startPos]%16);
                }
                else
                {
                    value = (byte)(mainMemory[parseIndex + startPos] / 16);
                }
                output[k] = getAddrBase(value);
            }

            parseIndex = (inputv + outputv + 1) / 2;

            List<byte>[] values = new List<byte>[output.Length];
            for (int k=0; k<values.Length; k++)
            {
                values[k] = new List<byte>();
            }
            int j=0;
            foreach (AdressModeBase addrb in output)
            {
                for (int k=0; k < addrb.numBytes; k++) {
                    values[j].Add(mainMemory[parseIndex + startPos]);
                    parseIndex += 1;
                }
                j += 1;
            }

            AdressModeData[] newOutput = new AdressModeData[output.Length];
            for (int k=0; k<output.Length; k++)
            {
                newOutput[k] = new AdressModeData(output[k], values[k].ToArray(), k >= inputv);
            }

            if (setParsePos)
            {
                parsePos = parseIndex + startPos;
            }

            return newOutput;
        }
Ejemplo n.º 14
0
 void doNothing2(AdressModeData[] data)
 {
 }
Ejemplo n.º 15
0
 public void execute(AdressModeData[] data)
 {
     executer(data);
 }