Fixed a problem with the REP instruction
This commit is contained in:
parent
95c5d9d22e
commit
495b9778fc
10
pasmsim2.c
10
pasmsim2.c
|
@ -1372,6 +1372,7 @@ int32_t ExecutePasmInstruction2(PasmVarsT *pasmvars)
|
|||
{
|
||||
if (!pasmvars->repforever) pasmvars->repcnt--;
|
||||
pasmvars->pc = pasmvars->repbot;
|
||||
check_hubexec_mode(pasmvars);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3107,9 +3108,12 @@ if (streamflag) printf("\nSTREAM COLLISION\n");
|
|||
case 6: // xcont, rep
|
||||
if (czi & 4) // rep
|
||||
{
|
||||
pasmvars->repcnt = value2;
|
||||
pasmvars->repbot = pasmvars->pc;
|
||||
pasmvars->reptop = (pasmvars->pc + value1) & ADDR_MASK;
|
||||
pasmvars->repcnt = value2 - 1;
|
||||
pasmvars->repbot = pasmvars->pc1;
|
||||
if (value2 == 0) pasmvars->repforever = 1;
|
||||
if (pasmvars->pc >= 0x400) value1 <<= 2;
|
||||
pasmvars->reptop = (pasmvars->pc2 + value1) & ADDR_MASK;
|
||||
write_czr = 0;
|
||||
}
|
||||
else // xcont
|
||||
NotImplemented(instruct);
|
||||
|
|
Loading…
Reference in New Issue