/* (c) 2021 Aaron Taylor <ataylor at subgeniuskitty dot com> */
/* See LICENSE.txt file for copyright and license details. */
-// TODO: Prune includes in both this header and the corresponding source file.
-#include <stdio.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-#include <time.h>
-#include <termios.h>
-#include <signal.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
+#ifndef NEDSIM_SIMULATOR_H
+#define NEDSIM_SIMULATOR_H
-#include "./a.out.h"
+#include <stdbool.h>
/* Bytes per word. */
#define BPW 4
-/* Number of stack words. */
-#define STACK_LENGTH 65536
+/* Syllables per word. */
+#define SPW 5
-/* Number of bytes of RAM. */
-#define RAM_LENGTH 67108864
+/* Storage definitions. */
+#define STACK_LENGTH 65536
+#define RAM_LENGTH 67108864
#define RAM_BASE_ADDRESS 0x20000000
-/* Number of syllables per word. */
-#define SPW 5
-
struct NEDpsw {
bool zero;
bool negative;
HALT = 0b00000000
};
-struct NEDstate * init_simulator(void);
+struct NEDstate * init_simulator(char * input_file, const uint8_t * blob, const size_t * blob_size);
struct NEDstate * run_simulator(struct NEDstate * state);
uint32_t ram_r_word(struct NEDstate * state, uint32_t address);
+#endif