1
0
mirror of https://github.com/rcornwell/sims.git synced 2026-01-13 15:27:04 +00:00

I7000: Fixed issues with I7080 test case not running correctly.

This commit is contained in:
Richard Cornwell 2024-01-25 16:04:35 -05:00
parent 9fd72a7700
commit cc751fc489
2 changed files with 20 additions and 9 deletions

View File

@ -1609,11 +1609,12 @@ stop_cpu:
case OP_RWW: /* RWW 705 only */
MAC2 = MAC;
if (CPU_MODEL == CPU_7080 &&
if (iowait == 0 && CPU_MODEL == CPU_7080 &&
(cpu_unit.flags & IOIRQ) != 0 &&
(flags & EIGHTMODE) == 0 &&
((selreg >> 8) & 0xff) != 5) {
flags |= ANYFLAG|INSTFLAG;
selreg2 = 0;
} else {
selreg2 = selreg | 0x8000;
}
@ -2567,8 +2568,6 @@ uint16 get_acstart(uint8 reg) {
/* Store CPU state in CASU 15 */
void store_cpu(uint32 addr, int full) {
uint8 t;
int j;
uint32 ta;
store_addr(IC, &addr);
/* Save status characters */
@ -2625,8 +2624,6 @@ void store_cpu(uint32 addr, int full) {
void load_cpu(uint32 addr, int full) {
uint8 t;
uint8 f;
int j;
uint32 ta;
flags = 0;
IC = load_addr(&addr);
@ -3378,6 +3375,18 @@ cpu_reset(DEVICE * dptr)
selreg2 = 0;
IC = 4;
sim_brk_types = sim_brk_dflt = SWMASK('E');
/* Leave 80 mode */
if (CPU_MODEL == CPU_7080) {
cpu_type = (cpu_unit.flags & EMULATE3)? CPU_7053:CPU_705;
EMEMSIZE = MEMSIZE;
if (cpu_unit.flags & EMULATE2 && EMEMSIZE > 40000)
EMEMSIZE = 40000;
if (cpu_type == CPU_705 && (cpu_unit.flags & EMULATE2) == 0 &&
EMEMSIZE > 20000)
EMEMSIZE = 20000;
if (EMEMSIZE > 80000)
EMEMSIZE = 80000;
}
return SCPE_OK;
}

View File

@ -3,10 +3,10 @@ cd i7080
rm test.log
set cpu 80k 7080 emu7053 hist=10000
set console -n -q log=test.log
at mta1 t1.tp
at mta2 t2.tp
at mtb1 t3.tp
at mtb2 t4.tp
at mta1 -n t1.tp
at mta2 -n t2.tp
at mtb1 -n t3.tp
at mtb2 -n t4.tp
load 8cu10b.dck
echo "8cu10b"
br 18219
@ -32,4 +32,6 @@ load 8cu30b.dck
echo "8cu30b"
br 2164
go 4
detach -q all
del t*.tp
quit