diff options
| author | Ian C <ianc@noddybox.co.uk> | 2026-03-22 13:23:12 +0000 |
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2026-03-22 13:23:12 +0000 |
| commit | 56a57ae9e1873fd98e10d73631fe1880a023c375 (patch) | |
| tree | a286fe3962da0ff86a343d3d9e4b43ee9e02233f | |
| parent | 15d2a8724930bfb3d87f20b286391d4133d42d98 (diff) | |
Fixed IM3
| -rw-r--r-- | src/.gitignore | 2 | ||||
| -rw-r--r-- | src/z80.c | 5 | ||||
| -rw-r--r-- | src/z80_decode.c | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..ce59529 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,2 @@ +espec +*.o @@ -49,6 +49,8 @@ static void InitTables() static void Z80_CheckInterrupt(Z80 *cpu) { + Z80Word vector; + /* Check interrupts */ if (cpu->raise) @@ -95,7 +97,8 @@ static void Z80_CheckInterrupt(Z80 *cpu) case 2: PUSH(cpu->PC); - cpu->PC=(Z80Word)cpu->I*256+cpu->devbyte; + vector=(Z80Word)cpu->I*256+cpu->devbyte; + cpu->PC=PEEKW(vector); break; } } diff --git a/src/z80_decode.c b/src/z80_decode.c index 23408da..a508a9b 100644 --- a/src/z80_decode.c +++ b/src/z80_decode.c @@ -116,13 +116,13 @@ void Z80_InitialiseInternals(void) } } -static Z80Word FPEEKW(Z80 *cpu, Z80Word addr) +Z80Word FPEEKW(Z80 *cpu, Z80Word addr) { return (PEEK(addr) | (Z80Word)PEEK(addr+1)<<8); } -static void FPOKEW(Z80 *cpu, Z80Word addr, Z80Word val) +void FPOKEW(Z80 *cpu, Z80Word addr, Z80Word val) { cpu->mwrite(cpu,addr,val); cpu->mwrite(cpu,addr+1,val>>8); |
