From 4dad2bc8a1879e6439f5d889a27548e616aa2e02 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Wed, 5 Feb 2025 07:19:53 +0100 Subject: [PATCH] mes microcodi --- microcode.txt | 62 ++------------------------------------------------- 1 file changed, 2 insertions(+), 60 deletions(-) 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 +===========================