commit 75516e41cfa514dcd9b04c7d2bfb634dbfb218a9 Author: FyloZ Date: Thu Sep 21 23:53:14 2023 -0400 Init diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f26300a --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +CC = gcc +BIN = ./bin +OBJ = ./obj +SRC = ./src + +SRCS = $(wildcard $(SRC)/*.c) +OBJS = $(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(SRCS)) +EXE = $(BIN)/emu + +CFLAGS = -Wall +LDLIBS = -lm + +.PHONY: all run clean + +all: $(EXE) + +$(EXE): $(OBJS) | $(BIN) + $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) + +$(OBJ)/%.o: $(SRC)/%.c | $(OBJ) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BIN) $(OBJ): + mkdir $@ + +run: $(EXE) + $< + +clean: + rm -rf $(OBJ) $(BIN) diff --git a/bin/emu b/bin/emu new file mode 100755 index 0000000..c5cee12 Binary files /dev/null and b/bin/emu differ diff --git a/obj/cpu.o b/obj/cpu.o new file mode 100644 index 0000000..0aad6a6 Binary files /dev/null and b/obj/cpu.o differ diff --git a/obj/main.o b/obj/main.o new file mode 100644 index 0000000..266645b Binary files /dev/null and b/obj/main.o differ diff --git a/src/cpu.c b/src/cpu.c new file mode 100644 index 0000000..e2b8aef --- /dev/null +++ b/src/cpu.c @@ -0,0 +1,27 @@ +/* + * ===================================================================================== + * + * Filename: cpu.c + * + * Description: 6502 CPU emulator + * + * Version: 1.0 + * Created: 2023-09-21 10:10:26 PM + * Revision: none + * Compiler: gcc + * + * Author: William Nolin, + * Organization: + * + * ===================================================================================== + */ +#include +#include + +long cpu_clock = 0; + +void cpu_step_to(long cycle) { + cpu_clock = cycle; + printf("Clock: %ld", cpu_clock); +} + diff --git a/src/cpu.h b/src/cpu.h new file mode 100644 index 0000000..8b8bb8d --- /dev/null +++ b/src/cpu.h @@ -0,0 +1,27 @@ +/* + * ===================================================================================== + * + * Filename: cpu.h + * + * Description: 6502 CPU emulator headers + * + * Version: 1.0 + * Created: 2023-09-21 10:12:33 PM + * Revision: none + * Compiler: gcc + * + * Author: William Nolin, + * Organization: + * + * ===================================================================================== + */ + +#ifndef EMU_CPU_H +#define EMU_CPU_H + +/** + * @brief Set clock + */ +void cpu_step_to(int cycle); + +#endif diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..8ff18da --- /dev/null +++ b/src/main.c @@ -0,0 +1,38 @@ +/* + * ===================================================================================== + * + * Filename: main.c + * + * Description: Emulator main loop + * + * Version: 1.0 + * Created: 2023-09-21 09:50:34 PM + * Revision: none + * Compiler: gcc + * + * Author: William Nolin, + * Organization: + * + * ===================================================================================== + */ +#include + +#include "cpu.h" + +long master_clock = 0; + +void step() { + master_clock += 1; + cpu_step_to(master_clock); + + return; +} + +int main() { + while (1) { + step(); + } + + return -1; +} +