X-Git-Url: http://git.subgeniuskitty.com/screensavers/.git/blobdiff_plain/84b7459516288471d70a0bbddffef5c5a80efd18..f9c19ef3c60356dc4d163a3ed2d1fa86535a2332:/hacks/NEDsim/simulator.h diff --git a/hacks/NEDsim/simulator.h b/hacks/NEDsim/simulator.h index 927f73b..83f8622 100644 --- a/hacks/NEDsim/simulator.h +++ b/hacks/NEDsim/simulator.h @@ -1,45 +1,22 @@ /* (c) 2021 Aaron Taylor */ /* See LICENSE.txt file for copyright and license details. */ -// TODO: Prune includes in both this header and the corresponding source file. -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "./a.out.h" +#ifndef NEDSIM_SIMULATOR_H +#define NEDSIM_SIMULATOR_H -// TODO: Can get rid of this since I don't do a show_usage() anymore? -#define VERSION 5 +#include /* Bytes per word. */ #define BPW 4 -/* Number of stack words. */ -#define STACK_LENGTH 1048576 - -/* Number of bytes of RAM. */ -#define RAM_LENGTH 1073741824 - -/* Number of hardware threads. */ -#define THREAD_COUNT 8 - -/* Number of syllables per word. */ +/* Syllables per word. */ #define SPW 5 +/* Storage definitions. */ +#define STACK_LENGTH 65536 +#define RAM_LENGTH 67108864 +#define RAM_BASE_ADDRESS 0x20000000 + struct NEDpsw { bool zero; bool negative; @@ -58,11 +35,11 @@ struct NEDhack { bool resume_word; }; -// TODO: Make this a single thread before committing. Multi-thread is broken with my current main loop. struct NEDstate { bool halted; uint8_t ram[RAM_LENGTH]; - struct NEDthread * thread[THREAD_COUNT]; + /* Although NED is multi-threaded, this screensaver is restricted to a single thread. */ + struct NEDthread * thread[1]; struct NEDthread * active_thread; struct NEDhack * hack; }; @@ -86,7 +63,8 @@ enum syllables { HALT = 0b00000000 }; -struct NEDstate * init_simulator(void); +struct NEDstate * init_simulator(char * input_file); struct NEDstate * run_simulator(struct NEDstate * state); uint32_t ram_r_word(struct NEDstate * state, uint32_t address); +#endif