From 69e730141a1ab7a847667b4230325e3f07b3d25c Mon Sep 17 00:00:00 2001 From: FyloZ Date: Fri, 22 Sep 2023 14:39:25 -0400 Subject: [PATCH] MSG --- bin/emu | Bin 15584 -> 15632 bytes obj/cpu.o | Bin 1608 -> 1712 bytes src/{ => cpu}/cpu.c | 6 ++++++ src/{ => cpu}/cpu.h | 0 src/cpu/op.c | 26 ++++++++++++++++++++++++++ src/cpu/op.h | 10 ++++++++++ src/main.c | 2 +- 7 files changed, 43 insertions(+), 1 deletion(-) rename src/{ => cpu}/cpu.c (89%) rename src/{ => cpu}/cpu.h (100%) create mode 100644 src/cpu/op.c create mode 100644 src/cpu/op.h diff --git a/bin/emu b/bin/emu index c5cee12c94ce08fa665a01f0c217a6834bdfae7b..0157dea7024125f3fee3510e7b496b882763256f 100755 GIT binary patch delta 1468 zcmZ8hU1$_n6ux(MXOn^a%$TIR+uF{wH8xfjIkgZeZSv9P!wM{a)S!L9>-v3p>AFMJjH7@EQ{cpOU5&)`8K3SRh9WT1b~{#~EL!|H0vmy6YP7k6%lOyhz&LR}Wuj8@ z#mi>NiwtUGx>p@E-f#%n&vZ+7Afvz0xfSi8;X`Eq`^2s_PnC21(abn9{-`>}AoaMv z!9ST|J7gZ zpUXs$4;pSGwYVn;f?MiS8w?}e%^2)6%^-gZyF(4LW`1V97H>Qcg6q4O^*yt8GwW-# z3bQwNU}a1!u*8#7)X%FUywq`o{LEsZG-iBIGiI%cdyj&k6Ejo)U?SoO;w8i%A!Dtl zi_mAiMiVe%z5V7SDz{*S-?=$=$@97WKPw^s09AiqkfC39jATusP@a#br8 zZf034t6fEzLExBG0V5oZ|H7h5jL1=!HUEUW??q4ii|#5?Lpnsq@-ZX#T=3@w z|Bgrt;c@ENtIZRHfD$6BBVUfSg0B?%l{>9R9`)~%YodWX%{T_wa#toaLNOUtvlx8~ zE-Q7k8>W*{t(U2BIZf~&xvlOXe@(m>o{^H%azH6fwDwXu1=Mwni7;Q8#7W2@+pcm} zq7K8Zqjd?k3$D1Xc1CzO3a-06AaYO=kZU`E!!zCHEI*&}FpdFDIhwrGxl$@sq0lDC xr5#P)r4C2Zt|m8a!IgBDTJR*D)w~2>+8xMkbTz$&d!NEEdPg^K?-lgS{{eqk7PJ5W delta 1363 zcmZ8hU1$_n6h3z{v&q2jW=2hC;}1Kg{;eT9lU>8^lB`)3<3@z$MQgF*TBU7@lrAO^ zrPTOK7KtP|A|@?}SZV@76V?>Lmqo!eFPgV1)RI0(le`!q59v#%=kDCGX)fIT?)lDl z?m73~vommh_S`^7&uCB{85bZo7`d+|eXf-pd}XPV%rz!aXJ4pCCD;0z;pn z{{6@C z^V2bWtr+;b;t$NMU}X&W4D|c_f!P(T57WfnY*|-a)Jy7+mcb5fLr044#i==F0W5tU ztqxx)@15;W-z6s7uZ(a=EqB#quPeLx`f905b!Mx>y?L-Z8<>e#%?~#Zk}^pi*b~&QN&5o6v;Io{BpYddOLGjT%`h7; z&YQpaBi`G2ZzY-wz9u0bp524<4PiElYV-u_!_H`!4PznN%0f6D4eO?8&`LK5a`-p- zY)n~UR)?QhKU4R(L&IA8FLoUBveEuMQ6_|-DkGc%&Jk+FhgR{u#IKR6VN~=RndNZ} zb=hbfrZtaRz1vU3>re|jGG#G%-C5){)IQ-}DFj|mx*C8N_^#2o@CTV|AP6auv3#w> zEeJj@`0XO>Eulua?2I4;+#%%qWW+yWo8XrSxqkIY`L&aNC)^eZL>wsO;N`9k&~YMW zDD~v6!wG3EYr{WdhI)vrX?qh{{G;OO_!$XHl3bi=$}xJ%#)PH!$!;Yc4r89!I>lu@ z4B|w>QfOEf-jx{G#@0=l=Z|2PwX=zoHwp-mJ%(o=e#h7ay!3nb3%AYcT56BAt3+Q?E A-v9sr diff --git a/obj/cpu.o b/obj/cpu.o index 0aad6a6eb3d4f91eae94277d2a77be5aa8d65e3b..5804503131e9018d693acd890219ca8ea4000e27 100644 GIT binary patch delta 264 zcmX@Xvw?Sl29p8vL@jUW{fP_=3@?C~VSf^gHR0r8kif)>8X+GL!;w#*jmeppjme#d zon!JvCaK8^j0KE7lP5CDv#J2)1%P5AlQ%Ld^A?nrBxfWRfiy7)PyWa#KKTQqhpIK0 z&%nR}q}hS^&wmJTMHZi|%k&#)rXZv6WE*A`P5~x}PGlqWi$)m8|BR51>39u<3tTRe(Aa G+0+3Tu|Vkn delta 193 zcmdnMdxB?z2Ga?qiCW&w6HXqUIH5++f&mB|`2^aSoO#)bdDuB78!}5zUck&U*@iKP z(PHvSM)}DP7*!_oFr`dh!1MtqGLhMw^9CbG8v{ea #include +#define test(x) \ + print_##x(x) + long cpu_clock = 0; void cpu_step_to(long cycle) { cpu_clock = cycle; printf("Clock: %ld", cpu_clock); + + test(f); + // test("b"); } diff --git a/src/cpu.h b/src/cpu/cpu.h similarity index 100% rename from src/cpu.h rename to src/cpu/cpu.h diff --git a/src/cpu/op.c b/src/cpu/op.c new file mode 100644 index 0000000..b10ebc6 --- /dev/null +++ b/src/cpu/op.c @@ -0,0 +1,26 @@ +#include "op.h" + +#define IS_ALU_OP_CODE_(op, offset) \ + case op + offset: \ + op_##op(); \ + break; + +#define IS_ALU_OP_CODE(op) \ + IS_ALU_OP_CODE_(op, 0x01) \ + IS_ALU_OP_CODE_(op, 0x05) \ + IS_ALU_OP_CODE_(op, 0x09) \ + IS_ALU_OP_CODE_(op, 0x0d) \ + IS_ALU_OP_CODE_(op, 0x11) \ + IS_ALU_OP_CODE_(op, 0x15) \ + IS_ALU_OP_CODE_(op, 0x19) \ + IS_ALU_OP_CODE_(op, 0x1d) + +void process_op_code(int op) { + switch (op) { + IS_ALU_OP_CODE(AND) + } +} + +void op_AND() { + +} diff --git a/src/cpu/op.h b/src/cpu/op.h new file mode 100644 index 0000000..c8f08a4 --- /dev/null +++ b/src/cpu/op.h @@ -0,0 +1,10 @@ +enum op_code { + ORA = 0x00, + AND = 0x20, + EOR = 0x40, + ADC = 0x60, + STA = 0x80, + LDA = 0xa0, + CMP = 0xc0, + SBC = 0xe0 +}; diff --git a/src/main.c b/src/main.c index 8ff18da..212163f 100644 --- a/src/main.c +++ b/src/main.c @@ -17,7 +17,7 @@ */ #include -#include "cpu.h" +#include "cpu/cpu.h" long master_clock = 0;