Previous 199869 Revisions Next

r18383 Tuesday 9th October, 2012 at 16:21:20 UTC by Curt Coder
(MESS) c64: Cleanup. (nw)
[src/mess/drivers]c64.c
[src/mess/includes]c64.h

trunk/src/mess/includes/c64.h
r18382r18383
8888   DECLARE_READ8_MEMBER( read );
8989   DECLARE_WRITE8_MEMBER( write );
9090
91   INTERRUPT_GEN_MEMBER( frame_interrupt );
9192   DECLARE_READ8_MEMBER( vic_videoram_r );
9293   DECLARE_WRITE_LINE_MEMBER( vic_irq_w );
93   DECLARE_READ8_MEMBER( vic_lightpen_x_cb );
94   DECLARE_READ8_MEMBER( vic_lightpen_y_cb );
95   DECLARE_READ8_MEMBER( vic_lightpen_button_cb );
96   DECLARE_READ8_MEMBER( vic_rdy_cb );
9794
9895   DECLARE_READ8_MEMBER( sid_potx_r );
9996   DECLARE_READ8_MEMBER( sid_poty_r );
r18382r18383
141138   int m_exp_nmi;
142139   int m_cass_rd;
143140   int m_iec_srq;
144   DECLARE_DRIVER_INIT(c64pal);
145   INTERRUPT_GEN_MEMBER(c64_frame_interrupt);
146141};
147142
148143
r18382r18383
183178};
184179
185180
186int c64_paddle_read (device_t *device, address_space &space, int which);
187181
188
189182#endif
trunk/src/mess/drivers/c64.c
r18382r18383
4949{
5050   int restore = BIT(ioport("SPECIAL")->read(), 7);
5151
52   m_maincpu->set_input_line(INPUT_LINE_IRQ0, m_cia1_irq || m_vic_irq || m_exp_irq);
52   m_maincpu->set_input_line(M6510_IRQ_LINE, m_cia1_irq || m_vic_irq || m_exp_irq);
5353   m_maincpu->set_input_line(INPUT_LINE_NMI, m_cia2_irq || restore || m_exp_nmi);
5454
5555   m_cia1->flag_w(m_cass_rd && m_iec_srq);
r18382r18383
5858
5959
6060//**************************************************************************
61//  MEMORY MANAGEMENT UNIT
61//  ADDRESS DECODING
6262//**************************************************************************
6363
6464//-------------------------------------------------
r18382r18383
368368//  vic2_interface vic_intf
369369//-------------------------------------------------
370370
371INTERRUPT_GEN_MEMBER(c64_state::c64_frame_interrupt)
371INTERRUPT_GEN_MEMBER( c64_state::frame_interrupt )
372372{
373
374373   check_interrupts();
375374   cbm_common_interrupt(&device);
376375}
r18382r18383
382381   check_interrupts();
383382}
384383
385READ8_MEMBER( c64_state::vic_lightpen_x_cb )
386{
387   return ioport("LIGHTX")->read() & ~0x01;
388}
389
390READ8_MEMBER( c64_state::vic_lightpen_y_cb )
391{
392   return ioport("LIGHTY")->read() & ~0x01;
393}
394
395READ8_MEMBER( c64_state::vic_lightpen_button_cb )
396{
397   return ioport("OTHER")->read() & 0x04;
398}
399
400READ8_MEMBER( c64_state::vic_rdy_cb )
401{
402   return ioport("CYCLES")->read() & 0x07;
403}
404
405384static MOS6567_INTERFACE( vic_intf )
406385{
407386   SCREEN_TAG,
408387   M6510_TAG,
409388   DEVCB_DRIVER_LINE_MEMBER(c64_state, vic_irq_w),
410389   DEVCB_NULL, // RDY
411   DEVCB_DRIVER_MEMBER(c64_state, vic_lightpen_x_cb),
412   DEVCB_DRIVER_MEMBER(c64_state, vic_lightpen_y_cb),
413   DEVCB_DRIVER_MEMBER(c64_state, vic_lightpen_button_cb),
414   DEVCB_DRIVER_MEMBER(c64_state, vic_rdy_cb)
390   DEVCB_NULL,
391   DEVCB_NULL,
392   DEVCB_NULL,
393   DEVCB_NULL
415394};
416395
417396
r18382r18383
457436
458437
459438//-------------------------------------------------
460//  legacy_mos6526_interface cia1_intf
439//  MOS6526_INTERFACE( cia1_intf )
461440//-------------------------------------------------
462441
463442WRITE_LINE_MEMBER( c64_state::cia1_irq_w )
r18382r18383
545524
546525
547526//-------------------------------------------------
548//  legacy_mos6526_interface cia2_intf
527//  MOS6526_INTERFACE( cia2_intf )
549528//-------------------------------------------------
550529
551530WRITE_LINE_MEMBER( c64_state::cia2_irq_w )
r18382r18383
965944{
966945   m_maincpu->reset();
967946
947   m_cia1->reset();
948   m_cia2->reset();
968949   m_iec->reset();
969950   m_exp->reset();
970951   m_user->reset();
r18382r18383
985966   MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK)
986967   MCFG_CPU_PROGRAM_MAP(c64_mem)
987968   MCFG_CPU_CONFIG(cpu_intf)
988   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
969   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, frame_interrupt)
989970   MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
990971
991972   // video hardware
r18382r18383
10841065   MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
10851066   MCFG_CPU_PROGRAM_MAP(c64_mem)
10861067   MCFG_CPU_CONFIG(cpu_intf)
1087   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
1068   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, frame_interrupt)
10881069   MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
10891070
10901071   // video hardware
r18382r18383
11611142   MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
11621143   MCFG_CPU_PROGRAM_MAP(c64_mem)
11631144   MCFG_CPU_CONFIG(c64gs_cpu_intf)
1164   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
1145   MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, frame_interrupt)
11651146   MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
11661147
11671148   // video hardware

Previous 199869 Revisions Next


© 1997-2024 The MAME Team