TRAP test
This commit is contained in:
parent
640643cb65
commit
7d68b74113
1 changed files with 59 additions and 33 deletions
92
PDP11/test.c
92
PDP11/test.c
|
@ -467,52 +467,78 @@ void emit_misc_operations()
|
||||||
printf("misc instructions\n");
|
printf("misc instructions\n");
|
||||||
|
|
||||||
const char *const filename = "pdp1170-valtest-MISC.json";
|
const char *const filename = "pdp1170-valtest-MISC.json";
|
||||||
if (file_exist(filename))
|
if (file_exist(filename) == 0) {
|
||||||
return;
|
int id = 0;
|
||||||
|
json_t *out = json_array();
|
||||||
|
|
||||||
int id = 0;
|
int groups[] = { 2 /* RTI */, 6 /* RTT */ };
|
||||||
json_t *out = json_array();
|
|
||||||
|
|
||||||
int groups[] = { 2 /* RTI */, 6 /* RTT */ };
|
for(int group=0; group<2; group++) {
|
||||||
|
for(int psw_val=0; psw_val<65536; psw_val++) {
|
||||||
|
if ((psw_val & 0174377) != psw_val)
|
||||||
|
continue;
|
||||||
|
|
||||||
for(int group=0; group<2; group++) {
|
uint16_t instr = groups[group];
|
||||||
for(int psw_val=0; psw_val<65536; psw_val++) {
|
|
||||||
if ((psw_val & 0174377) != psw_val)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
uint16_t instr = groups[group];
|
init_simh();
|
||||||
|
|
||||||
init_simh();
|
saved_PC = 0100;
|
||||||
|
randomize_registers_all_values();
|
||||||
|
init_stack_registers();
|
||||||
|
|
||||||
saved_PC = 0100;
|
struct mem_t mem[1] = {
|
||||||
randomize_registers_all_values();
|
{ 0100, instr }
|
||||||
init_stack_registers();
|
};
|
||||||
|
|
||||||
struct mem_t mem[1] = {
|
PSW = psw_val;
|
||||||
{ 0100, instr }
|
|
||||||
};
|
|
||||||
|
|
||||||
PSW = psw_val;
|
json_t *obj = generate_test(instr, &id, mem, 1);
|
||||||
|
if (obj)
|
||||||
json_t *obj = generate_test(instr, &id, mem, 1);
|
json_array_append_new(out, obj);
|
||||||
if (obj)
|
}
|
||||||
json_array_append_new(out, obj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(int group=0; group<3; group++) {
|
||||||
|
uint16_t instr = 0;
|
||||||
|
if (group == 0)
|
||||||
|
instr = 0100 | 010; // JMP (R0)
|
||||||
|
else if (group == 1)
|
||||||
|
instr = 04000 | 0110; // JSR R1,(R0)
|
||||||
|
else if (group == 2)
|
||||||
|
instr = 0200 | 01; // RTS (R1)
|
||||||
|
|
||||||
|
produce_set_register(instr, 0, &id, out);
|
||||||
|
}
|
||||||
|
|
||||||
|
dump_json(filename, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int group=0; group<3; group++) {
|
// TRAP
|
||||||
uint16_t instr = 0;
|
const char *const filename2 = "pdp1170-valtest-MISC2.json";
|
||||||
if (group == 0)
|
if (file_exist(filename2) == 0) {
|
||||||
instr = 0100 | 010; // JMP (R0)
|
int id = 0;
|
||||||
else if (group == 1)
|
json_t *out = json_array();
|
||||||
instr = 04000 | 0110; // JSR R1,(R0)
|
|
||||||
else if (group == 2)
|
|
||||||
instr = 0200 | 01; // RTS (R1)
|
|
||||||
|
|
||||||
produce_set_register(instr, 0, &id, out);
|
uint16_t instr = 0104420; // TRAP #020
|
||||||
|
|
||||||
|
init_simh();
|
||||||
|
|
||||||
|
saved_PC = 0100;
|
||||||
|
randomize_registers_all_values();
|
||||||
|
init_stack_registers();
|
||||||
|
|
||||||
|
struct mem_t mem[1] = {
|
||||||
|
{ 0100, instr }
|
||||||
|
};
|
||||||
|
|
||||||
|
PSW = 012;
|
||||||
|
|
||||||
|
json_t *obj = generate_test(instr, &id, mem, 1);
|
||||||
|
if (obj)
|
||||||
|
json_array_append_new(out, obj);
|
||||||
|
|
||||||
|
dump_json(filename2, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
dump_json(filename, out);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void produce_validation_tests()
|
void produce_validation_tests()
|
||||||
|
|
Loading…
Add table
Reference in a new issue