Previous 199869 Revisions Next

r21159 Monday 18th February, 2013 at 12:17:41 UTC by Miodrag Milanović
IRQ_CALLBACK_MEMBER cleanup (no whatsnew)
[src/mess/drivers]esq5505.c fk1.c mod8.c pc6001.c
[src/mess/includes]galaxy.h poly88.h
[src/mess/machine]galaxy.c poly88.c
[src/mess/video]galaxy.c

trunk/src/mess/machine/galaxy.c
r21158r21159
4646   device.execute().set_input_line(0, HOLD_LINE);
4747}
4848
49static IRQ_CALLBACK ( galaxy_irq_callback )
49IRQ_CALLBACK_MEMBER(galaxy_state::galaxy_irq_callback)
5050{
51   galaxy_state *state = device->machine().driver_data<galaxy_state>();
52   galaxy_set_timer(device->machine());
53   state->m_interrupts_enabled = TRUE;
51   galaxy_set_timer();
52   m_interrupts_enabled = TRUE;
5453   return 0xff;
5554}
5655
r21158r21159
187186   if (ioport("ROM2")->read())
188187      membank("bank10")->set_base(memregion("maincpu")->base() + 0x1000);
189188
190   m_maincpu->set_irq_acknowledge_callback(galaxy_irq_callback);
189   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(galaxy_state::galaxy_irq_callback),this));
191190   m_interrupts_enabled = TRUE;
192191}
193192
r21158r21159
201200   UINT8 *ROM = memregion("maincpu")->base();
202201   address_space &space = m_maincpu->space(AS_PROGRAM);
203202
204   m_maincpu->set_irq_acknowledge_callback(galaxy_irq_callback);
203   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(galaxy_state::galaxy_irq_callback),this));
205204
206205   ROM[0x0037] = 0x29;
207206   ROM[0x03f9] = 0xcd;
trunk/src/mess/machine/poly88.c
r21158r21159
130130   }
131131}
132132
133static IRQ_CALLBACK (poly88_irq_callback)
133IRQ_CALLBACK_MEMBER(poly88_state::poly88_irq_callback)
134134{
135   poly88_state *state = device->machine().driver_data<poly88_state>();
136   return state->m_int_vector;
135   return m_int_vector;
137136}
138137
139138TIMER_CALLBACK_MEMBER(poly88_state::poly88_cassette_timer_callback)
r21158r21159
208207
209208void poly88_state::machine_reset()
210209{
211   m_maincpu->set_irq_acknowledge_callback(poly88_irq_callback);
210   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(poly88_state::poly88_irq_callback),this));
212211   m_intr = 0;
213212   m_last_code = 0;
214213
trunk/src/mess/includes/galaxy.h
r21158r21159
4141   UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4242   INTERRUPT_GEN_MEMBER(galaxy_interrupt);
4343   TIMER_CALLBACK_MEMBER(gal_video);
44
44   IRQ_CALLBACK_MEMBER(galaxy_irq_callback);
45   void galaxy_set_timer();
4546protected:
4647   required_device<cpu_device> m_maincpu;
4748   required_device<cassette_image_device> m_cassette;
r21158r21159
5455/*----------- defined in machine/galaxy.c -----------*/
5556SNAPSHOT_LOAD( galaxy );
5657
57/*----------- defined in video/galaxy.c -----------*/
58void galaxy_set_timer(running_machine &machine);
59
6058#endif /* GALAXY_H_ */
trunk/src/mess/includes/poly88.h
r21158r21159
5454   TIMER_CALLBACK_MEMBER(poly88_cassette_timer_callback);
5555   TIMER_CALLBACK_MEMBER(setup_machine_state);
5656   DECLARE_WRITE_LINE_MEMBER(poly88_usart_rxready);
57   IRQ_CALLBACK_MEMBER(poly88_irq_callback);
5758
5859protected:
5960   required_device<cpu_device> m_maincpu;
trunk/src/mess/video/galaxy.c
r21158r21159
102102   }
103103}
104104
105void galaxy_set_timer(running_machine &machine)
105void galaxy_state::galaxy_set_timer()
106106{
107   galaxy_state *state = machine.driver_data<galaxy_state>();
108   state->m_gal_cnt = 0;
109   state->m_gal_video_timer->adjust(attotime::zero, 0, attotime::from_hz(6144000 / 8));
107   m_gal_cnt = 0;
108   m_gal_video_timer->adjust(attotime::zero, 0, attotime::from_hz(6144000 / 8));
110109}
111110
112111void galaxy_state::video_start()
trunk/src/mess/drivers/esq5505.c
r21158r21159
181181   DECLARE_DRIVER_INIT(sq1);
182182   DECLARE_DRIVER_INIT(denib);
183183   DECLARE_INPUT_CHANGED_MEMBER(key_stroke);
184   IRQ_CALLBACK_MEMBER(maincpu_irq_acknowledge_callback);
184185};
185186
186187FLOPPY_FORMATS_MEMBER( esq5505_state::floppy_formats )
r21158r21159
191192   SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
192193SLOT_INTERFACE_END
193194
194static int maincpu_irq_acknowledge_callback(device_t *device, int irqnum) {
195IRQ_CALLBACK_MEMBER(esq5505_state::maincpu_irq_acknowledge_callback)
196{
195197   // We immediately update the interrupt presented to the CPU, so that it doesn't
196198   // end up retrying the same interrupt over and over. We then return the appropriate vector.
197   esq5505_state *esq5505 = device->machine().driver_data<esq5505_state>();
198199   int vector = 0;
199   switch(irqnum) {
200   switch(irqline) {
200201   case 1:
201   esq5505->otis_irq_state = 0;
202   otis_irq_state = 0;
202203   vector = M68K_INT_ACK_AUTOVECTOR;
203204   break;
204205   case 2:
205   esq5505->dmac_irq_state = 0;
206   vector = esq5505->dmac_irq_vector;
206   dmac_irq_state = 0;
207   vector = dmac_irq_vector;
207208   break;
208209   case 3:
209   esq5505->duart_irq_state = 0;
210   vector = esq5505->duart_irq_vector;
210   duart_irq_state = 0;
211   vector = duart_irq_vector;
211212   break;
212213   default:
213   printf("\nUnexpected IRQ ACK Callback: IRQ %d\n", irqnum);
214   printf("\nUnexpected IRQ ACK Callback: IRQ %d\n", irqline);
214215   return 0;
215216   }
216   esq5505->update_irq_to_maincpu();
217   update_irq_to_maincpu();
217218   return vector;
218219}
219220
r21158r21159
221222{
222223   m_rom = (UINT16 *)(void *)machine().root_device().memregion("osrom")->base();
223224   m_ram = (UINT16 *)(void *)machine().root_device().memshare("osram")->ptr();
224   m_maincpu->set_irq_acknowledge_callback(maincpu_irq_acknowledge_callback);
225   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(esq5505_state::maincpu_irq_acknowledge_callback),this));
225226}
226227
227228void esq5505_state::update_irq_to_maincpu() {
trunk/src/mess/drivers/fk1.c
r21158r21159
5454   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5555   TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
5656   TIMER_DEVICE_CALLBACK_MEMBER(vsync_callback);
57   IRQ_CALLBACK_MEMBER(fk1_irq_callback);
5758};
5859
5960
r21158r21159
4044050 ? PRINTER
405406*/
406407
407static IRQ_CALLBACK (fk1_irq_callback)
408IRQ_CALLBACK_MEMBER(fk1_state::fk1_irq_callback)
408409{
409   fk1_state *state = device->machine().driver_data<fk1_state>();
410
411   logerror("IRQ %02x\n", state->m_int_vector*2);
412   return state->m_int_vector * 2;
410   logerror("IRQ %02x\n", m_int_vector*2);
411   return m_int_vector * 2;
413412}
414413
415414TIMER_DEVICE_CALLBACK_MEMBER(fk1_state::vsync_callback)
r21158r21159
430429   membank("bank3")->set_base(ram + 0x8000);
431430   membank("bank4")->set_base(ram + 0xc000);
432431
433   machine().device("maincpu")->execute().set_irq_acknowledge_callback(fk1_irq_callback);
432   machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fk1_state::fk1_irq_callback),this));
434433}
435434
436435UINT32 fk1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
trunk/src/mess/drivers/pc6001.c
r21158r21159
266266   DECLARE_WRITE8_MEMBER(pc6001_8255_portc_w);
267267   DECLARE_READ8_MEMBER(pc6001_8255_portc_r);
268268   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(pc6001_cass);
269
269   IRQ_CALLBACK_MEMBER(pc6001_irq_callback);
270270protected:
271271   required_device<cpu_device> m_maincpu;
272272   required_device<device_t> m_cassette;
r21158r21159
19061906   device.execute().set_input_line(0, ASSERT_LINE);
19071907}
19081908
1909static IRQ_CALLBACK ( pc6001_irq_callback )
1909IRQ_CALLBACK_MEMBER(pc6001_state::pc6001_irq_callback)
19101910{
1911   pc6001_state *state = device->machine().driver_data<pc6001_state>();
1912   device->execute().set_input_line(0, CLEAR_LINE);
1913   return state->m_irq_vector;
1911   device.execute().set_input_line(0, CLEAR_LINE);
1912   return m_irq_vector;
19141913}
19151914
19161915READ8_MEMBER(pc6001_state::pc6001_8255_porta_r)
r21158r21159
21562155
21572156   m_port_c_8255=0;
21582157
2159   m_maincpu->set_irq_acknowledge_callback(pc6001_irq_callback);
2158   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc6001_state::pc6001_irq_callback),this));
21602159   m_cas_switch = 0;
21612160   m_cas_offset = 0;
21622161   m_timer_irq_mask = 1;
r21158r21159
21732172
21742173   m_port_c_8255=0;
21752174
2176   m_maincpu->set_irq_acknowledge_callback(pc6001_irq_callback);
2175   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc6001_state::pc6001_irq_callback),this));
21772176   m_cas_switch = 0;
21782177   m_cas_offset = 0;
21792178
r21158r21159
22082207
22092208   m_port_c_8255=0;
22102209
2211   m_maincpu->set_irq_acknowledge_callback(pc6001_irq_callback);
2210   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc6001_state::pc6001_irq_callback),this));
22122211   m_cas_switch = 0;
22132212   m_cas_offset = 0;
22142213
trunk/src/mess/drivers/mod8.c
r21158r21159
3636   UINT8 m_tty_key_data;
3737   int m_tty_cnt;
3838   virtual void machine_reset();
39   IRQ_CALLBACK_MEMBER(mod8_irq_callback);
3940};
4041
4142WRITE8_MEMBER( mod8_state::out_w )
r21158r21159
8283static INPUT_PORTS_START( mod8 )
8384INPUT_PORTS_END
8485
85static IRQ_CALLBACK ( mod8_irq_callback )
86IRQ_CALLBACK_MEMBER(mod8_state::mod8_irq_callback)
8687{
8788   return 0xC0; // LAA - NOP equivalent
8889}
8990
9091void mod8_state::machine_reset()
9192{
92   machine().device("maincpu")->execute().set_irq_acknowledge_callback(mod8_irq_callback);
93   machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mod8_state::mod8_irq_callback),this));   
9394}
9495
9596WRITE8_MEMBER( mod8_state::kbd_put )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team