diff --git a/include/apple2.h b/include/apple2.h new file mode 100644 index 0000000..9c813c5 --- /dev/null +++ b/include/apple2.h @@ -0,0 +1,15 @@ +#ifndef _APPLE2_H_ +#define _APPLE2_H_ + +#include "mos6502.h" + +typedef struct { + /* + * The apple 2 hardware used an MOS-6502 processor. + */ + mos6502 *cpu; +} apple2; + +extern apple2 *apple2_create(); + +#endif diff --git a/sources.cmake b/sources.cmake index 42c2fa5..9cfc7d7 100644 --- a/sources.cmake +++ b/sources.cmake @@ -1,4 +1,5 @@ set(emp_sources + apple2.c log.c mos6502.c mos6502.addr.c diff --git a/src/apple2.c b/src/apple2.c new file mode 100644 index 0000000..e0c9cf4 --- /dev/null +++ b/src/apple2.c @@ -0,0 +1,20 @@ +/* + * apple2.c + */ + +#include "apple2.h" + +apple2 * +apple2_create() +{ + apple2 *mach; + + mach = malloc(sizeof(apple2)); + if (mach == NULL) { + return NULL; + } + + mach->cpu = mos6502_create(); + + return mach; +} diff --git a/tests/apple2.c b/tests/apple2.c new file mode 100644 index 0000000..f41319b --- /dev/null +++ b/tests/apple2.c @@ -0,0 +1,12 @@ +#include + +#include "apple2.h" + +Test(apple2, create) +{ + apple2 *mach; + + mach = apple2_create(); + cr_assert_neq(mach, NULL); + cr_assert_neq(mach->cpu, NULL); +}