#include #include #include "pdp11_defs.h" #include "sim_defs.h" //extern t_stat sim_brk_init(void); //extern t_stat sim_brk_set(t_addr loc, int32 sw, int32 ncnt, CONST char *act); extern t_stat sim_instr(); //extern uint32 sim_brk_summ; extern void PWriteW(int32 data, int32 addr); extern int32 PReadW(int32 addr); extern int32 REGFILE[6][2]; extern int32 STACKFILE[4]; extern int32 saved_PC; extern int32 PSW; extern t_stat cpu_reset(DEVICE *dptr); extern DEVICE cpu_dev; extern int32 STACKFILE[4]; struct mem_t { uint32_t addr; uint16_t value; }; int is_prime(int n) { if (n <= 1) return 0; for(int i = 2; i*i <= n; i++) { if (n % i == 0) return 0; } return 1; } uint16_t test_values[65536]; int n_test_values = 0; void generate_test_values() { for(int i=0; i<65536; i++) { if (is_prime(i)) test_values[n_test_values++] = i; } for(int i=2; i<16; i++) test_values[n_test_values++] = 1 << i; test_values[n_test_values++] = 0; test_values[n_test_values++] = 255; test_values[n_test_values++] = 256; test_values[n_test_values++] = 32767; test_values[n_test_values++] = 32768; test_values[n_test_values++] = 65535; } json_t *generate_test(uint16_t instruction, int *const id, struct mem_t *mem, size_t n_mem) { json_t *before = json_object(); reset_all(0); cpu_reset(&cpu_dev); json_object_set(before, "PC", json_integer(saved_PC)); json_object_set(before, "stack-0", json_integer(STACKFILE[0])); json_object_set(before, "stack-1", json_integer(STACKFILE[1])); json_object_set(before, "stack-2", json_integer(STACKFILE[2])); json_object_set(before, "stack-3", json_integer(STACKFILE[3])); json_t *memory_i = json_array(); for(size_t i=0; i