diff --git a/microcode.txt b/microcode.txt index 54eac40..2c5f75b 100644 --- a/microcode.txt +++ b/microcode.txt @@ -135,64 +135,6 @@ BCC CheckIfPageCrossed; FetchOpcode - - -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(); +CLC SEC CLI SEI CLD SED CLV +===========================