src/mess/drivers/pc8801.c
| r10257 | r10258 | |
| 1821 | 1821 | }; |
| 1822 | 1822 | |
| 1823 | 1823 | #ifdef USE_PROPER_I8214 |
| 1824 | | void pc8801_raise_irq(running_machine *machine,UINT8 irq,UINT8 mask) |
| 1824 | void pc8801_raise_irq(running_machine *machine,UINT8 irq,UINT8 state) |
| 1825 | 1825 | { |
| 1826 | | m_int_state |= mask; |
| 1826 | if(state) |
| 1827 | { |
| 1828 | m_int_state |= irq; |
| 1827 | 1829 | |
| 1828 | | i8214_r_w(machine->device("i8214"), 0, ~irq); |
| 1830 | i8214_r_w(machine->device("i8214"), 0, ~irq); |
| 1829 | 1831 | |
| 1830 | | if(mask) |
| 1831 | 1832 | cputag_set_input_line(machine,"maincpu",0,ASSERT_LINE); |
| 1833 | } |
| 1834 | else |
| 1835 | { |
| 1836 | //m_int_state &= ~irq; |
| 1837 | |
| 1838 | //cputag_set_input_line(machine,"maincpu",0,CLEAR_LINE); |
| 1839 | } |
| 1832 | 1840 | } |
| 1833 | 1841 | |
| 1834 | 1842 | static WRITE_LINE_DEVICE_HANDLER( pic_int_w ) |
| r10257 | r10258 | |
| 1863 | 1871 | |
| 1864 | 1872 | static void pc8801_sound_irq( device_t *device, int irq ) |
| 1865 | 1873 | { |
| 1866 | | pc8801_raise_irq(device->machine,1<<(4),sound_irq_mask); |
| 1874 | if(sound_irq_mask && irq) |
| 1875 | pc8801_raise_irq(device->machine,1<<(4),1); |
| 1867 | 1876 | } |
| 1868 | 1877 | |
| 1869 | 1878 | static TIMER_CALLBACK( pc8801_rtc_irq ) |
| 1870 | 1879 | { |
| 1871 | | pc8801_raise_irq(machine,1<<(2),timer_irq_mask); |
| 1880 | if(timer_irq_mask) |
| 1881 | pc8801_raise_irq(machine,1<<(2),1); |
| 1872 | 1882 | } |
| 1873 | 1883 | |
| 1874 | 1884 | static INTERRUPT_GEN( pc8801_vrtc_irq ) |
| 1875 | 1885 | { |
| 1876 | | pc8801_raise_irq(device->machine,1<<(1),vblank_irq_mask); |
| 1886 | if(vblank_irq_mask) |
| 1887 | pc8801_raise_irq(device->machine,1<<(1),1); |
| 1877 | 1888 | } |
| 1878 | 1889 | |
| 1879 | 1890 | #else |