From 1f83a3e0826969f8a6db60f55a3c600d7cbd1e9b Mon Sep 17 00:00:00 2001 From: raxracks Date: Mon, 29 Jan 2024 20:34:53 +1300 Subject: [PATCH] a --- emulator | Bin 26304 -> 26760 bytes emulator.c | 16 ++++++++-------- hello.o | Bin 843 -> 316 bytes implemented.txt | 12 ++++++------ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/emulator b/emulator index bf0dc74ac111df9f0b4f1f5010c5e667642dcc8b..43cf2f01f1a5671522590d41c180d0714720ec9e 100755 GIT binary patch delta 9070 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 aYUeB*X|BD@u2?wI)peGFEVQ4Ro%b*H;h`r0 delta 6693 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 diff --git a/emulator.c b/emulator.c index cfff66b..1f3b451 100644 --- a/emulator.c +++ b/emulator.c @@ -398,21 +398,21 @@ int main(int argc, char** argv) { switch(l_nib) { case 0x6: printf(" ∟ INC $%02X, X\n", one); - uint8_t addr = one + cpu.X; - memory[addr]++; + uint8_t u8_addr = one + cpu.X; + memory[u8_addr]++; - set_flag(N, memory[addr] & 0x80 != 0); - set_flag(Z, memory[addr] == 0); + set_flag(N, memory[u8_addr] & 0x80 != 0); + set_flag(Z, memory[u8_addr] == 0); cpu.PC++; break; case 0xE: printf(" ∟ INC $%04X, X\n", word); - uint16_t addr = word + cpu.X; - memory[addr]++; + uint16_t u16_addr = word + cpu.X; + memory[u16_addr]++; - set_flag(N, memory[addr] & 0x80 != 0); - set_flag(Z, cpu.Y == 0); + set_flag(N, memory[u16_addr] & 0x80 != 0); + set_flag(Z, memory[u16_addr] == 0); cpu.PC += 2; break; diff --git a/hello.o b/hello.o index aab3117f6ef9cdcd04242abfa7cda1e8e217233b..d13f28306f20af73edbfb02f7f98de4a4603ba11 100644 GIT binary patch literal 316 zcmWHo%1abvU|>i9Voo5=1Y&j|E&$?aAU+Mmj6i$_N}mPNOh9}Ah^2t|6%Ypiu@z7e zNZolL2GQ0~J`)p@L)*$5YuOkXFJx>@)nQWsO0qC;F*30-Ff9-Os$yF3laUe3W&x56 zjLbmtKO++xP#r7KEG7mJ3y7gCpyQw{4j_vWEDLlvPz(%ML6(DE2+|F*3J91%1Q!Em zMruw@zFuN+u2gcOnW;jUk)ENYg06ylW{HA@nT3&orD>Wat6p(tRVs_Kzl$qdkiUy# dh$FL8a4-vq!4c&ef^(}008JCDE$Bc literal 843 zcmZvZOK%ck6o$|FW*F#T3%x+w8K6{+JGq0P@q(5#8X^rB7jEcR7z-&3guw>c2@B)K zty^Pa)P;!)P5cGMg_8PWi3^Kn8CK?DziFiV(M+fB*48Qxt)}tdMZuAT$?;GIr;RNKp$Wk6&>gBGzb8w z@Fb+q5JP~6xD4Vo;3kOoF4TGC)n|a-MR%RLIxcZHpw9sVi>{lxfEuqg7Hi|Y*5GC5 zG>Rrw0yu@vQur*4Tf~qE5`7|os_>gU5cI{XxCY`2igo@3gVqLd z1-GcNHU|TP!V{ogB*K5y%Lp;fGj5O;rvn8p^NbZnj*(_$7}rQ}kyDJ*E~hZ#I+x3w zvJ5^*xWd>ZL5h=)VKS~V=r{l_kYHy~!cxcT^#(EN^o^FxWup&Lv1B27IlA8+NAtOS zDpANjDwwSnjZUNgn+a#AIwR}YO>*R^#eO916Ls7lCK)M4nvqe5<57~4Vx$?F-MG_{ zBP-62h|_Cy?N+=uu#b;M(r$HPecAFho3(neT5lXQn`%?G+pcC`c5Q9=nC_godu=&+ z;tW0GfkQJnag`H^L{g(Y&M@POIo+wH-l^=Bv}$FqST8EKYc-XF=V7T@IVkRz)ccKc G8Q>3>m3}h- diff --git a/implemented.txt b/implemented.txt index 194e95b..d704d1d 100644 --- a/implemented.txt +++ b/implemented.txt @@ -1,23 +1,23 @@ ==== LDA (completed) ==== LDA # -- LDA $ (Z) +LDA $ (Z) LDA $ (A) LDA $, X (Z) LDA $, X (A) LDA $, Y (A) -- LDA ($, X) +LDA ($, X) LDA ($), Y ==== LDX (completed) ==== -- LDX # -- LDX $ (Z) +LDX # +LDX $ (Z) LDX $ (A) LDX $, Y (Z) LDX $, Y (A) ==== LDY (completed) ==== -- LDY # -- LDY $ (Z) +LDY # +LDY $ (Z) LDY $ (A) LDY $, X (Z) LDY $, X (A)