From ec07c5ca386d4c0dea84dd1249c95ee9aae41133 Mon Sep 17 00:00:00 2001 From: Folkert van Heusden Date: Sat, 5 Apr 2025 12:03:19 +0200 Subject: [PATCH] different PSW values for RTI/BPT/RTT tests --- PDP11/test.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/PDP11/test.c b/PDP11/test.c index 240e659d..ad3dd74f 100644 --- a/PDP11/test.c +++ b/PDP11/test.c @@ -523,28 +523,33 @@ void emit_misc_operations() int id = 0; json_t *out = json_array(); - int groups[] = { 2, 3, 6 }; + int groups[] = { 2 /* RTI */, 3 /* BPT */, 6 /* RTT */ }; for(int group=0; group<3; group++) { - uint16_t instr = groups[group]; + for(int psw_val=0; psw_val<65536; psw_val++) { + if ((psw_val & 0177417) != psw_val) + continue; - init_simh(); + uint16_t instr = groups[group]; - saved_PC = 0100; + init_simh(); - randomize_registers_all_values(); + saved_PC = 0100; - init_stack_registers(); + randomize_registers_all_values(); - struct mem_t mem[1] = { - { 0100, instr } - }; + init_stack_registers(); - PSW = 0; + struct mem_t mem[1] = { + { 0100, instr } + }; - json_t *obj = generate_test(instr, &id, mem, 1); - if (obj) - json_array_append_new(out, obj); + PSW = psw_val; + + json_t *obj = generate_test(instr, &id, mem, 1); + if (obj) + json_array_append_new(out, obj); + } } for(int group=0; group<3; group++) { @@ -554,7 +559,7 @@ void emit_misc_operations() else if (instr == 1) instr = 04000 | 0110; // JSR R1,(R0) else if (instr == 2) - instr = 0200 | 01; // RET (R1) + instr = 0200 | 01; // RTS (R1) for(int v1=0; v1