mes microcodi
This commit is contained in:
@@ -135,64 +135,6 @@ BCC
|
|||||||
CheckIfPageCrossed;
|
CheckIfPageCrossed;
|
||||||
FetchOpcode
|
FetchOpcode
|
||||||
|
|
||||||
|
CLC SEC CLI SEI CLD SED CLV
|
||||||
|
===========================
|
||||||
MICROINSTRUCTIONS
|
|
||||||
===========================================
|
|
||||||
|
|
||||||
FetchOpcode
|
|
||||||
DoOpcodeWork();
|
|
||||||
IR = Mem::Read(PC++);
|
|
||||||
Decode();
|
|
||||||
ResetState();
|
|
||||||
|
|
||||||
FakeFetchOperand
|
|
||||||
Address.Lo = Mem::Read(PC);
|
|
||||||
|
|
||||||
FetchOperandLo
|
|
||||||
Address.Lo = B = Mem::Read(PC++);
|
|
||||||
|
|
||||||
FetchOperandHi
|
|
||||||
Address.Hi = Mem::Read(PC++);
|
|
||||||
|
|
||||||
FetchOperandHiAndIndex
|
|
||||||
Address.Hi = Mem::Read(PC++);
|
|
||||||
if (Address.Lo+X/Y > 255) pageCrossed = true;
|
|
||||||
Address.Lo += X/Y;
|
|
||||||
|
|
||||||
ReadAddress
|
|
||||||
B = Mem::Read(Address);
|
|
||||||
if (pageCrossed) Address += 0x0100;
|
|
||||||
|
|
||||||
ReadAddressAndSkip
|
|
||||||
B = Mem::Read(Address);
|
|
||||||
if (pageCrossed)
|
|
||||||
Address += 0x0100;
|
|
||||||
else
|
|
||||||
InsertFetchOpcode();
|
|
||||||
|
|
||||||
IndexX
|
|
||||||
B = Mem::Read(Address);
|
|
||||||
Address.Lo += X;
|
|
||||||
|
|
||||||
FetchAddressLo
|
|
||||||
Add2.Lo = Mem::Read(Address++);
|
|
||||||
|
|
||||||
FetchAddressHi
|
|
||||||
Add2.Hi = Mem::Read(Address);
|
|
||||||
Address = Add2;
|
|
||||||
|
|
||||||
FetchAddressHiAndIndex
|
|
||||||
Add2.Hi = Mem::Read(Address);
|
|
||||||
if (Add2.lo+Y > 255) pageCrossed = true;
|
|
||||||
Address = Add2;
|
|
||||||
|
|
||||||
WriteRegister
|
|
||||||
if ((IR&3)==1) Mem::Write(Address, rA);
|
|
||||||
else if ((IR&3)==2) Mem::Write(Address, rX);
|
|
||||||
else if ((IR&3)==0) Mem::Write(Address, rY);
|
|
||||||
|
|
||||||
WriteAddress
|
|
||||||
Mem::Write(Address, B);
|
|
||||||
DoOpcodeWork();
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user