mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
lockon: Use ADC0808 device
This commit is contained in:
parent
99d90963c8
commit
3f9d74d78e
@ -16,6 +16,7 @@
|
||||
|
||||
#include "cpu/nec/nec.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/adc0808.h"
|
||||
#include "sound/2203intf.h"
|
||||
#include "sound/flt_vol.h"
|
||||
#include "speaker.h"
|
||||
@ -200,7 +201,7 @@ void lockon_state::sound_prg(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x6fff).rom();
|
||||
map(0x7000, 0x7000).w(this, FUNC(lockon_state::sound_vol));
|
||||
map(0x7400, 0x7403).r(this, FUNC(lockon_state::adc_r)).nopw();
|
||||
map(0x7400, 0x7407).rw("adc", FUNC(adc0808_device::data_r), FUNC(adc0808_device::address_offset_start_w));
|
||||
map(0x7800, 0x7fff).mirror(0x8000).ram();
|
||||
}
|
||||
|
||||
@ -331,24 +332,6 @@ static INPUT_PORTS_START( lockone )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* M58990P ADC
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ8_MEMBER(lockon_state::adc_r)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0: return ioport("ADC_BANK")->read();
|
||||
case 1: return ioport("ADC_PITCH")->read();
|
||||
case 2: return ioport("ADC_MISSILE")->read();
|
||||
case 3: return ioport("ADC_HOVER")->read();
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Graphics definitions
|
||||
@ -504,6 +487,11 @@ MACHINE_CONFIG_START(lockon_state::lockon)
|
||||
MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_ASTABLE(10000, 4700, 10000e-12) * 4096)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||
|
||||
MCFG_DEVICE_ADD("adc", M58990P, 1000000) // unknown clock (needs to be faster than 640khz for the wait loop)
|
||||
MCFG_ADC0808_IN0_CB(IOPORT("ADC_BANK"))
|
||||
MCFG_ADC0808_IN1_CB(IOPORT("ADC_PITCH"))
|
||||
MCFG_ADC0808_IN2_CB(IOPORT("ADC_MISSILE"))
|
||||
MCFG_ADC0808_IN3_CB(IOPORT("ADC_HOVER"))
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
|
||||
|
@ -46,6 +46,14 @@ public:
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
void lockon(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_char_ram;
|
||||
required_shared_ptr<uint16_t> m_hud_ram;
|
||||
@ -120,25 +128,20 @@ public:
|
||||
DECLARE_WRITE16_MEMBER(main_z80_w);
|
||||
DECLARE_WRITE16_MEMBER(inten_w);
|
||||
DECLARE_WRITE16_MEMBER(emres_w);
|
||||
DECLARE_READ8_MEMBER(adc_r);
|
||||
DECLARE_WRITE8_MEMBER(sound_vol);
|
||||
DECLARE_WRITE8_MEMBER(ym2203_out_b);
|
||||
TILE_GET_INFO_MEMBER(get_lockon_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
DECLARE_PALETTE_INIT(lockon);
|
||||
uint32_t screen_update_lockon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_lockon);
|
||||
TIMER_CALLBACK_MEMBER(cursor_callback);
|
||||
TIMER_CALLBACK_MEMBER(bufend_callback);
|
||||
void scene_draw( );
|
||||
void ground_draw( );
|
||||
void objects_draw( );
|
||||
void scene_draw();
|
||||
void ground_draw();
|
||||
void objects_draw();
|
||||
void rotate_draw( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
DECLARE_WRITE_LINE_MEMBER(ym2203_irq);
|
||||
void lockon(machine_config &config);
|
||||
void ground_v30(address_map &map);
|
||||
void main_v30(address_map &map);
|
||||
void object_v30(address_map &map);
|
||||
|
Loading…
Reference in New Issue
Block a user