# Path: h800/instruction.py
# class Instruction:
# class GeneralMasked(Instruction):
# class GeneralUnmasked(Instruction):
# class Peripheral(Instruction):
# class Simulator(Instruction):
# class Scientific(Instruction):
# class Constant(Word):
# class PseudoInstruction(Instruction):
# class AssemblyControl(PseudoInstruction):
#     def __init__(self, opcode, sequence=None, mask=None, a=None, b=None,
#                  c=None, paddr=None, pseudo=False):
#     def _check(self):
#     def value(self):
#     def __init__(self, opcode, sequence, mask):
#     def __init__(self, opcode, sequence, a, b, c):
#     def __init__(self, opcode, paddr):
#     def __init__(self, opcode, sequence):
#     def __init__(self, opcode, sequence, a, b, c):
#     def __init__(self, mnemonic, data):
#     def __init__(self, mnemonic, a, b, c):
#     def __init__(self, mnemonic, a, b, c):


from collections import namedtuple
from h800 import instruction
                   0b10, 0b1, 0o24, "maskable"),

    # General, unmasked.
    "BM":   Opcode("BM", "BinaryMultiply",
                   0b00, 0b0, 0o13),

    "DM":   Opcode("DM", "DecimalMultiply",
                   0b00, 0b0, 0o03),

    "BT":   Opcode("BT", "BinaryAccumulate",
                   0b10, 0b0, 0o13),

    "DT":   Opcode("DT", "DecimalAccumulate",
                   0b10, 0b0, 0o03),

    "MT":   Opcode("MT", "MultipleTransfer",
                   0b00, 0b0, 0o20),

    "TN":   Opcode("TN", "TransferNWords",
                   0b01, 0b0, 0o20),

    "CC":   Opcode("CC", "ComputeOrthocount",
                   0b01, 0b0, 0o10),

    "IT":   Opcode("IT", "ItemTransfer",
                   0b01, 0b0, 0o30),

    "EBA":  Opcode("EBA", "ExtendedBinaryAdd",
                   0b11, 0b0, 0o13),


# Path: h800/instruction.py
# class Instruction:
# class GeneralMasked(Instruction):
# class GeneralUnmasked(Instruction):
# class Peripheral(Instruction):
# class Simulator(Instruction):
# class Scientific(Instruction):
# class Constant(Word):
# class PseudoInstruction(Instruction):
# class AssemblyControl(PseudoInstruction):
#     def __init__(self, opcode, sequence=None, mask=None, a=None, b=None,
#                  c=None, paddr=None, pseudo=False):
#     def _check(self):
#     def value(self):
#     def __init__(self, opcode, sequence, mask):
#     def __init__(self, opcode, sequence, a, b, c):
#     def __init__(self, opcode, paddr):
#     def __init__(self, opcode, sequence):
#     def __init__(self, opcode, sequence, a, b, c):
#     def __init__(self, mnemonic, data):
#     def __init__(self, mnemonic, a, b, c):
#     def __init__(self, mnemonic, a, b, c):


# Path: h800/instructions.py
from collections import namedtuple
from h800 import instruction

                   0b10, 0b1, 0o24, "maskable"),

    # General, unmasked.
    "BM":   Opcode("BM", "BinaryMultiply",
                   0b00, 0b0, 0o13),

    "DM":   Opcode("DM", "DecimalMultiply",
                   0b00, 0b0, 0o03),

    "BT":   Opcode("BT", "BinaryAccumulate",
                   0b10, 0b0, 0o13),

    "DT":   Opcode("DT", "DecimalAccumulate",
                   0b10, 0b0, 0o03),

    "MT":   Opcode("MT", "MultipleTransfer",
                   0b00, 0b0, 0o20),

    "TN":   Opcode("TN", "TransferNWords",
                   0b01, 0b0, 0o20),

    "CC":   Opcode("CC", "ComputeOrthocount",
                   0b01, 0b0, 0o10),

    "IT":   Opcode("IT", "ItemTransfer",
                   0b01, 0b0, 0o30),

    "EBA":  Opcode("EBA", "ExtendedBinaryAdd",
                   0b11, 0b0, 0o13),


    "EBS":  Opcode("EBS", "ExtendedBinarySubtract",