mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
Makes suggested changes to MDRV_TIMER macros. Hasn't moved them yet.
This commit is contained in:
parent
0d06d94153
commit
d4893e2535
@ -437,10 +437,19 @@ union _machine_config_token
|
||||
|
||||
|
||||
/* add/remove timers */
|
||||
#define MDRV_TIMER_ADD(_tag, _type, _callback) \
|
||||
#define MDRV_TIMER_ADD_PERIODIC(_tag, _callback, _period) \
|
||||
MDRV_DEVICE_ADD(_tag, TIMER) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, type, TIMER_TYPE_##_type) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, callback, _callback)
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, type, TIMER_TYPE_PERIODIC) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, callback, _callback) \
|
||||
MDRV_DEVICE_CONFIG_DATA64(timer_config, period, UINT64_ATTOTIME_IN_##_period)
|
||||
|
||||
#define MDRV_TIMER_ADD_SCANLINE(_tag, _callback, _screen, _first_vpos, _increment) \
|
||||
MDRV_DEVICE_ADD(_tag, TIMER) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, type, TIMER_TYPE_SCANLINE) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, callback, _callback) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, screen, _screen) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, first_vpos, _first_vpos) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, increment, _increment)
|
||||
|
||||
#define MDRV_TIMER_REMOVE(_tag) \
|
||||
MDRV_DEVICE_REMOVE(_tag, TIMER_SCREEN)
|
||||
@ -448,17 +457,11 @@ union _machine_config_token
|
||||
#define MDRV_TIMER_MODIFY(_tag) \
|
||||
MDRV_DEVICE_MODIFY(_tag, TIMER_SCREEN)
|
||||
|
||||
#define MDRV_TIMER_TYPE(_type) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, type, TIMER_TYPE_##_type)
|
||||
|
||||
#define MDRV_TIMER_CALLBACK(_callback) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, callback, _callback)
|
||||
|
||||
#define MDRV_TIMER_DURATION(_duration) \
|
||||
MDRV_DEVICE_CONFIG_DATA64(timer_config, duration, _duration)
|
||||
|
||||
#define MDRV_TIMER_PERIOD(_period) \
|
||||
MDRV_DEVICE_CONFIG_DATA64(timer_config, period, _period)
|
||||
MDRV_DEVICE_CONFIG_DATA64(timer_config, duration, UINT64_ATTOTIME_IN_##_duration)
|
||||
|
||||
#define MDRV_TIMER_PARAM(_param) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, param, _param)
|
||||
@ -466,11 +469,6 @@ union _machine_config_token
|
||||
#define MDRV_TIMER_PTR(_ptr) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, ptr, _ptr)
|
||||
|
||||
#define MDRV_TIMER_SCANLINE(_screen, _first_vpos, _increment) \
|
||||
MDRV_DEVICE_CONFIG_DATAPTR(timer_config, screen, _screen) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, first_vpos, _first_vpos) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(timer_config, increment, _increment)
|
||||
|
||||
|
||||
/* core sound functions */
|
||||
#define MDRV_SOUND_START(_func) \
|
||||
|
@ -1011,22 +1011,19 @@ static DEVICE_START( timer )
|
||||
assert(config->increment == 0);
|
||||
|
||||
/* validate that we have at least a duration or period */
|
||||
assert((config->duration > 0) || (config->period > 0));
|
||||
assert(config->period > 0);
|
||||
|
||||
/* copy the optional integer parameter */
|
||||
state->param = config->param;
|
||||
|
||||
/* convert the duration and period into attotime */
|
||||
state->period = UINT64_ATTOTIME_TO_ATTOTIME(config->period);
|
||||
|
||||
if (config->duration > 0)
|
||||
state->duration = UINT64_ATTOTIME_TO_ATTOTIME(config->duration);
|
||||
else
|
||||
state->duration = attotime_zero;
|
||||
|
||||
if (config->period > 0)
|
||||
state->period = UINT64_ATTOTIME_TO_ATTOTIME(config->period);
|
||||
else
|
||||
state->period = attotime_never;
|
||||
|
||||
/* register for state saves */
|
||||
state_save_register_item(unique_tag, 0, state->duration.seconds);
|
||||
state_save_register_item(unique_tag, 0, state->duration.attoseconds);
|
||||
|
@ -1625,8 +1625,7 @@ static MACHINE_DRIVER_START( centiped )
|
||||
MDRV_NVRAM_HANDLER(atari_vg)
|
||||
|
||||
/* timer */
|
||||
MDRV_TIMER_ADD("32V", SCANLINE, generate_interrupt)
|
||||
MDRV_TIMER_SCANLINE("main", 0, 16)
|
||||
MDRV_TIMER_ADD_SCANLINE("32V", generate_interrupt, "main", 0, 16)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
|
@ -2161,14 +2161,12 @@ static MACHINE_DRIVER_START( spcenctr )
|
||||
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_USEC(255000000 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)))
|
||||
|
||||
/* timers */
|
||||
MDRV_TIMER_ADD("STROBE_ON", PERIODIC, spcenctr_strobe_timer_callback)
|
||||
MDRV_TIMER_ADD_PERIODIC("STROBE_ON", spcenctr_strobe_timer_callback, HZ(SPCENCTR_STROBE_FREQ))
|
||||
MDRV_TIMER_PARAM(TRUE) /* indicates strobe ON */
|
||||
MDRV_TIMER_PERIOD(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ))
|
||||
|
||||
MDRV_TIMER_ADD("STROBE_OFF", PERIODIC, spcenctr_strobe_timer_callback)
|
||||
MDRV_TIMER_ADD_PERIODIC("STROBE_OFF", spcenctr_strobe_timer_callback, HZ(SPCENCTR_STROBE_FREQ))
|
||||
MDRV_TIMER_DURATION(HZ(SPCENCTR_STROBE_FREQ * 100 / SPCENCTR_STROBE_DUTY_CYCLE))
|
||||
MDRV_TIMER_PARAM(FALSE) /* indicates strobe OFF */
|
||||
MDRV_TIMER_DURATION(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ * 100 / SPCENCTR_STROBE_DUTY_CYCLE))
|
||||
MDRV_TIMER_PERIOD(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ))
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_UPDATE(spcenctr)
|
||||
|
Loading…
Reference in New Issue
Block a user