TRAP handling
Some checks are pending
Build / cmake-builds (push) Waiting to run
Build / makefile (macos-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (macos-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (macos-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (macos-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (macos-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (macos-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run
Build / makefile (ubuntu-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (ubuntu-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (ubuntu-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (ubuntu-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run
Some checks are pending
Build / cmake-builds (push) Waiting to run
Build / makefile (macos-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (macos-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (macos-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (macos-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (macos-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (macos-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run
Build / makefile (ubuntu-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (ubuntu-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (ubuntu-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (ubuntu-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run
This commit is contained in:
parent
9eee7acc94
commit
c3545a2f2a
2 changed files with 14 additions and 13 deletions
|
@ -924,8 +924,7 @@ while (reason == 0) {
|
||||||
} /* end else t */
|
} /* end else t */
|
||||||
if (trapea == 0) { /* nothing to do? */
|
if (trapea == 0) { /* nothing to do? */
|
||||||
trap_req = calc_ints (ipl, 0); /* recalculate */
|
trap_req = calc_ints (ipl, 0); /* recalculate */
|
||||||
break;
|
continue; /* back to fetch */
|
||||||
//continue; /* back to fetch */
|
|
||||||
} /* end if trapea */
|
} /* end if trapea */
|
||||||
|
|
||||||
/* Process a trap or interrupt
|
/* Process a trap or interrupt
|
||||||
|
@ -975,8 +974,7 @@ while (reason == 0) {
|
||||||
if ((cm == MD_KER) && (SP < (STKLIM + STKL_Y)) &&
|
if ((cm == MD_KER) && (SP < (STKLIM + STKL_Y)) &&
|
||||||
(trapnum != TRAP_V_RED) && (trapnum != TRAP_V_YEL))
|
(trapnum != TRAP_V_RED) && (trapnum != TRAP_V_YEL))
|
||||||
set_stack_trap (SP);
|
set_stack_trap (SP);
|
||||||
break;
|
continue; /* end if traps */
|
||||||
//continue; /* end if traps */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fetch and decode next instruction */
|
/* Fetch and decode next instruction */
|
||||||
|
|
21
PDP11/test.c
21
PDP11/test.c
|
@ -85,19 +85,20 @@ json_t *generate_test(uint16_t instruction, int *const id, struct mem_t *mem, si
|
||||||
json_t *memory_i = json_array();
|
json_t *memory_i = json_array();
|
||||||
|
|
||||||
for(size_t i=0; i<n_mem; i++) {
|
for(size_t i=0; i<n_mem; i++) {
|
||||||
char buffer[16];
|
char buffer1[16];
|
||||||
|
char buffer2[16];
|
||||||
json_t *put_mem_i_0 = json_object();
|
json_t *put_mem_i_0 = json_object();
|
||||||
PWriteW(mem[i].value, mem[i].addr);
|
PWriteW(mem[i].value, mem[i].addr);
|
||||||
|
|
||||||
if (mem[i].addr & 1)
|
if (mem[i].addr & 1)
|
||||||
printf("FAIL\n");
|
printf("FAIL\n");
|
||||||
|
|
||||||
sprintf(buffer, "%06o", mem[i].addr);
|
sprintf(buffer1, "%06o", mem[i].addr);
|
||||||
json_object_set(put_mem_i_0, buffer, json_integer(mem[i].value & 255));
|
json_object_set(put_mem_i_0, buffer1, json_integer(mem[i].value & 255));
|
||||||
json_array_append_new(memory_i, put_mem_i_0);
|
json_array_append_new(memory_i, put_mem_i_0);
|
||||||
|
|
||||||
sprintf(buffer, "%06o", mem[i].addr + 1);
|
sprintf(buffer2, "%06o", mem[i].addr + 1);
|
||||||
json_object_set(put_mem_i_0, buffer, json_integer(mem[i].value >> 8));
|
json_object_set(put_mem_i_0, buffer2, json_integer(mem[i].value >> 8));
|
||||||
json_array_append_new(memory_i, put_mem_i_0);
|
json_array_append_new(memory_i, put_mem_i_0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,15 +504,17 @@ void emit_misc_operations()
|
||||||
|
|
||||||
saved_PC = 0100;
|
saved_PC = 0100;
|
||||||
randomize_registers_all_values();
|
randomize_registers_all_values();
|
||||||
init_stack_registers();
|
STACKFILE[0] = STACKFILE[1] = STACKFILE[2] = STACKFILE[3] = 07774;
|
||||||
|
|
||||||
struct mem_t mem[1] = {
|
struct mem_t mem[3] = {
|
||||||
{ 0100, instr }
|
{ 0100, instr },
|
||||||
|
{ 07776, 01234 },
|
||||||
|
{ 07774, 06420 }
|
||||||
};
|
};
|
||||||
|
|
||||||
PSW = psw_val;
|
PSW = psw_val;
|
||||||
|
|
||||||
json_t *obj = generate_test(instr, &id, mem, 1);
|
json_t *obj = generate_test(instr, &id, mem, 3);
|
||||||
if (obj)
|
if (obj)
|
||||||
json_array_append_new(out, obj);
|
json_array_append_new(out, obj);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue