コード例 #1
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def ind(cpu, arg1, arg2):
    int addrLSB = arg1 + (arg2 << 8)
    int addrMSB = ((arg1 + 1) & 0xFF) + (arg2 << 8)
    cpu.PC += 3
    return memory.read(addrLSB) + (memory.read(addrMSB) << 8)
コード例 #2
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def abx(cpu, arg1, arg2):
    return memory.read(ABX(cpu,arg1,arg2))
コード例 #3
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def aby(cpu, arg1, arg2):
    return memory.read(ABY(cpu,arg1,arg2))
コード例 #4
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def zpy(cpu, arg1, arg2):
    return memory.read(ZPY(cpu,arg1,arg2))
コード例 #5
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def abt(cpu, arg1, arg2):
    return memory.read(ABS(cpu,arg1,arg2))
コード例 #6
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def INY(cpu, arg1, arg2):
    indirectAddress = memory.read(arg1) + (memory.read((arg1 + 1) & 0xFF) << 8)
    cpu.cycles += pageBoundaryCycles(indirectAddress, cpu.Y)
    cpu.PC += 2
    return (indirectAddress + cpu.Y) & 0xFFFF
コード例 #7
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def RLA(cpu, value):
    ROL(cpu, value)
    AND(cpu, memory.read(value))
コード例 #8
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def BRK(cpu, value):
    vector = memory.read(VECTOR_BRK) + memory.read(VECTOR_BRK+1)<<8
    processInterrupt(cpu,vector)
コード例 #9
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def condRead(cpu, addr):
    if addr is -1:
        return cpu.A
    return memory.read(addr)
コード例 #10
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def DCP(cpu, value):
    modMemory(cpu, value, -1)
    compareWithRegister(cpu, memory.read(value), cpu.A)
コード例 #11
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def ISB(cpu, value):
    INC(cpu, value)
    SBC(cpu, memory.read(value))
コード例 #12
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def modMemory(cpu, address, dVal):
    value = memory.read(address)
    value += dVal
    memory.write(address, value)
    cpu.setNZ(value)
コード例 #13
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def popFromStack(cpu):
    cpu.S += 1
    return memory.read(0x100 | (cpu.S & 0xFF))
コード例 #14
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def SRE(cpu, value):
    LSR(cpu, value)
    EOR(cpu, memory.read(value))
コード例 #15
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def INX(cpu, arg1, arg2):
    zpAddr = (arg1 + cpu.X) & 0xFF
    indirectAddress = memory.read(zpAddress) + (memory.read((zpAddress + 1) & 0xFF) << 8)
    cpu.PC += 2
    return indirectAddress
コード例 #16
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def zp(cpu, arg1, arg2):
    return memory.read(arg1)
コード例 #17
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def inx(cpu, arg1, arg2):
    return memory.read(INX(cpu,arg1,arg2))
コード例 #18
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def zpx(cpu, arg1, arg2):
    return memory.read(ZPX(cpu,arg1,arg2))
コード例 #19
0
ファイル: addressingModes.py プロジェクト: mplamann/pyNESE
def iny(cpu, arg1, arg2):
    return memory.read(INY(cpu,arg1,arg2))
コード例 #20
0
ファイル: opcodes.py プロジェクト: mplamann/pyNESE
def SLO(cpu, value):
    ASL(cpu, value)
    ORA(cpu, memory.read(value))