summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/upd7810
diff options
context:
space:
mode:
author Ramiro Polla <ramiro.polla@gmail.com>2014-11-05 15:10:40 +0100
committer Ramiro Polla <ramiro.polla@gmail.com>2014-11-07 05:00:57 +0100
commit613ad8165dd2ad1104803dec9117163020c44db1 (patch)
tree197cc4537ac914f5b269f225c587d2caa84a0c4b /src/emu/cpu/upd7810
parentef53b9356f1b28815823a4f1a6c3814a08644998 (diff)
upd7810: ECNT clear control happens after capture control
Diffstat (limited to 'src/emu/cpu/upd7810')
-rw-r--r--src/emu/cpu/upd7810/upd7810.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c
index 0f9c77e5d0a..3790f6c981c 100644
--- a/src/emu/cpu/upd7810/upd7810.c
+++ b/src/emu/cpu/upd7810/upd7810.c
@@ -1313,22 +1313,6 @@ void upd7810_device::handle_timers(int cycles)
IRR |= INTFE0;
if (ETM1 == ECNT)
IRR |= INTFE1;
- /* How and When ECNT is Cleared */
- switch (ETMM & 0x0c)
- {
- case 0x00: /* clear ECNT */
- break;
- case 0x04: /* free running */
- if (0 == ECNT)
- ITF |= INTOV; /* set overflow flag if counter wrapped */
- break;
- case 0x08: /* reset at falling edge of CI or TO */
- break;
- case 0x0c: /* reset if ECNT == ETM1 */
- if (ETM1 == ECNT)
- ECNT = 0;
- break;
- }
/* Conditions When ECNT Causes a CO0 Output Change */
if (((0x00 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 */
/* ((0x10 == (ETMM & 0x30)) prohibited */
@@ -1367,6 +1351,22 @@ void upd7810_device::handle_timers(int cycles)
break;
}
}
+ /* How and When ECNT is Cleared */
+ switch (ETMM & 0x0c)
+ {
+ case 0x00: /* clear ECNT */
+ break;
+ case 0x04: /* free running */
+ if (0 == ECNT)
+ ITF |= INTOV; /* set overflow flag if counter wrapped */
+ break;
+ case 0x08: /* reset at falling edge of CI or TO */
+ break;
+ case 0x0c: /* reset if ECNT == ETM1 */
+ if (ETM1 == ECNT)
+ ECNT = 0;
+ break;
+ }
}
}