trunk/src/emu/sound/pokey.c
| r242755 | r242756 | |
| 251 | 251 | m_KBCODE = 0x09; /* Atari 800 'no key' */ |
| 252 | 252 | m_SKCTL = SK_RESET; /* let the RNG run after reset */ |
| 253 | 253 | m_SKSTAT = 0; |
| 254 | | m_IRQST = 0; |
| 254 | /* This bit should probably get set later. Acid5200 pokey_setoc test tests this. */ |
| 255 | m_IRQST = IRQ_SEROC; |
| 255 | 256 | m_IRQEN = 0; |
| 256 | 257 | m_AUDCTL = 0; |
| 257 | 258 | m_p4 = 0; |
| r242755 | r242756 | |
| 1010 | 1011 | /* acknowledge one or more IRQST bits ? */ |
| 1011 | 1012 | if( m_IRQST & ~data ) |
| 1012 | 1013 | { |
| 1013 | | /* reset IRQST bits that are masked now */ |
| 1014 | | m_IRQST &= data; |
| 1014 | /* reset IRQST bits that are masked now, except the SEROC bit (acid5200 pokey_seroc test) */ |
| 1015 | m_IRQST &= (IRQ_SEROC | data); |
| 1015 | 1016 | } |
| 1016 | 1017 | /* store irq enable */ |
| 1017 | 1018 | m_IRQEN = data; |
| 1019 | /* if SEROC irq is enabled trigger an irq (acid5200 pokey_seroc test) */ |
| 1020 | if (m_IRQEN & m_IRQST & IRQ_SEROC) |
| 1021 | { |
| 1022 | if (!m_irq_f.isnull()) |
| 1023 | m_irq_f(IRQ_SEROC); |
| 1024 | } |
| 1018 | 1025 | break; |
| 1019 | 1026 | |
| 1020 | 1027 | case SKCTL_C: |