Mercurial > repos > blastem
changeset 1126:63cd87d910cc
Clear interrupt status flags after getting the status register value rather than before
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 27 Dec 2016 13:59:01 -0800 |
parents | fba485949723 |
children | cb4771f4543a |
files | sms.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/sms.c Tue Dec 27 13:46:06 2016 -0800 +++ b/sms.c Tue Dec 27 13:59:01 2016 -0800 @@ -56,9 +56,10 @@ sms_context *sms = z80->system; vdp_run_context(sms->vdp, z80->current_cycle); if (location & 1) { + uint8_t ret = vdp_control_port_read(sms->vdp); sms->vdp->flags2 &= ~(FLAG2_VINT_PENDING|FLAG2_HINT_PENDING); update_interrupts(sms); - return vdp_control_port_read(sms->vdp); + return ret; } else { return vdp_data_port_read(sms->vdp); }