X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=net.mograsim.logic.model.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fmachine%2FAm2900MicroInstructionDefinition.java;h=d61b751dda3019ccf49b5bfd59d8d6dbfe91db7d;hb=fa5e3151a923b6cb6120f62436e24ac103a9290c;hp=1263aab85837317e8c38a31e17f7f9435288d4d9;hpb=259c5b8d38b6ed641fd9b5d78fe20969c67015dc;p=Mograsim.git diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java index 1263aab8..d61b751d 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java @@ -11,19 +11,20 @@ import net.mograsim.machine.mi.parameters.ParameterClassification; public class Am2900MicroInstructionDefinition implements MicroInstructionDefinition { - private final static MnemonicFamily am2910Instructions = new MnemonicFamily(new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); + private final static MnemonicFamily am2910Instructions = new MnemonicFamily("JZ", "CJS", "JMAP", "PUSH", "JSRP", "CJV", "JRP", "RFCT", + "RPCT", "CRTN", "CJPP", "LDCT", "LOOP", "CONT", "TWB"); private final static MnemonicFamily am2904StatusInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); - private final static MnemonicFamily am2904ShiftInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); - private final static MnemonicFamily am2904CarryInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); - private final static MnemonicFamily am2901DestInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); - private final static MnemonicFamily am2901FuncInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); - private final static MnemonicFamily am2901SrcInstructions = new MnemonicFamily( - new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); + new String[] { "Zero", "NotZero", "UGTEQ", "ULT", "UGT", "ULTEQ", "SGTEQ", "SLT", "SGT", "SLTEQ" }, + new long[] { 0x5, 0x4, 0xB, 0xA, 0xC, 0xD, 0x2, 0x3, 0x0, 0x1 }, 4); + private final static MnemonicFamily am2904ShiftInstructions = new MnemonicFamily("SL", "SH", "SCONI", "SDH", "SDC", "SDN", "SDL", + "SDCO", "SRCO", "SRCIO", "SR", "SDIC", "SDRCI", "SDRCO", "SDXOR", "SDR"); + private final static MnemonicFamily am2904CarryInstructions = new MnemonicFamily(new String[] { "0", "1", "Cx", "µ", "!µ", "M", "!M" }, + new long[] { 0b000000, 0b010000, 0b100000, 0b110000, 0b110100, 0b111000, 0b111100 }, 6); + private final static MnemonicFamily am2901DestInstructions = new MnemonicFamily("QREG", "NOP", "RAMA", "RAMF", "RAMQD", "RAMD", "RAMQU", + "RAMU"); + private final static MnemonicFamily am2901FuncInstructions = new MnemonicFamily("ADD", "SUBR", "SUBS", "OR", "AND", "NOTRS", "EXOR", + "EXNOR"); + private final static MnemonicFamily am2901SrcInstructions = new MnemonicFamily("AQ", "AB", "ZQ", "ZB", "ZA", "DA", "DQ", "DZ"); private final static MnemonicFamily interruptInstructions = new MnemonicFamily( new MnemonicPair("X", BitVector.of(Bit.ZERO, 4))/* TODO */); private final static BooleanClassification hL = new BooleanClassification("H", "L");