mirror of
https://github.com/holub/mame
synced 2025-04-27 10:43:07 +03:00
(MESS) Changes in devcb2 usage. (nw)
This commit is contained in:
parent
edd1b11b4d
commit
a72e0f1822
@ -229,7 +229,8 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ti990_10_state, screen_update_ti990_10)
|
||||
MCFG_SCREEN_PALETTE("vdt911:palette")
|
||||
|
||||
MCFG_VDT911_VIDEO_ADD("vdt911", WRITELINE(ti990_10_state, vdt_interrupt), char_1920, vdt911_model_US)
|
||||
MCFG_DEVICE_ADD("vdt911", VDT911, 0)
|
||||
MCFG_VDT911_INT_HANDLER(WRITELINE(ti990_10_state, vdt_interrupt))
|
||||
|
||||
/* 911 VDT has a beep tone generator */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -238,7 +239,9 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state )
|
||||
|
||||
MCFG_FRAGMENT_ADD( ti990_hdc )
|
||||
|
||||
MCFG_TI990_TAPE_CTRL_ADD("tpc", WRITELINE(ti990_10_state, tape_interrupt))
|
||||
// Tape controller
|
||||
MCFG_DEVICE_ADD("tpc", TI990_TAPE_CTRL, 0)
|
||||
MCFG_TI990_TAPE_INT_HANDLER(WRITELINE(ti990_10_state, tape_interrupt))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -384,10 +384,15 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state )
|
||||
MCFG_SCREEN_SIZE(640, 480)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
|
||||
MCFG_SCREEN_PALETTE("asr733:palette")
|
||||
MCFG_ASR733_VIDEO_ADD("asr733", WRITELINE(ti990_4_state, asr_interrupt))
|
||||
|
||||
// Terminal
|
||||
MCFG_DEVICE_ADD("asr733", ASR733, 0)
|
||||
MCFG_ASR733_INT_HANDLER(WRITELINE(ti990_4_state, asr_interrupt))
|
||||
|
||||
// Floppy controller
|
||||
MCFG_FD800_ADD("fd800", WRITELINE(ti990_4_state, fd_interrupt))
|
||||
MCFG_DEVICE_ADD("fd800", FD800, 0)
|
||||
MCFG_FD800_INT_HANDLER(WRITELINE(ti990_4_state, fd_interrupt))
|
||||
|
||||
MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -407,13 +412,19 @@ static MACHINE_CONFIG_START( ti990_4v, ti990_4_state )
|
||||
MCFG_SCREEN_SIZE(560, 280)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1)
|
||||
MCFG_SCREEN_PALETTE("vdt911:palette")
|
||||
MCFG_VDT911_VIDEO_ADD("vdt911", WRITELINE(ti990_4_state, vdt_interrupt), char_1920, vdt911_model_US)
|
||||
|
||||
// Terminal
|
||||
MCFG_DEVICE_ADD("vdt911", VDT911, 0)
|
||||
MCFG_VDT911_INT_HANDLER(WRITELINE(ti990_4_state, vdt_interrupt))
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("beeper", BEEP, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
// Floppy controller
|
||||
MCFG_FD800_ADD("fd800", WRITELINE(ti990_4_state, fd_interrupt))
|
||||
MCFG_DEVICE_ADD("fd800", FD800, 0)
|
||||
MCFG_FD800_INT_HANDLER(WRITELINE(ti990_4_state, fd_interrupt))
|
||||
|
||||
MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -66,8 +66,7 @@ private:
|
||||
|
||||
LEGACY_FLOPPY_OPTIONS_EXTERN(fd800);
|
||||
|
||||
#define MCFG_FD800_ADD(_tag, _intcallb) \
|
||||
MCFG_DEVICE_ADD(_tag, FD800, 0) \
|
||||
#define MCFG_FD800_INT_HANDLER( _intcallb ) \
|
||||
devcb = &fd800_legacy_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
#endif
|
||||
|
@ -57,6 +57,5 @@ private:
|
||||
tape_unit_t m_tape[MAX_TAPE_UNIT];
|
||||
};
|
||||
|
||||
#define MCFG_TI990_TAPE_CTRL_ADD(_tag, _intcallb) \
|
||||
MCFG_DEVICE_ADD((_tag), TI990_TAPE_CTRL, 0)\
|
||||
#define MCFG_TI990_TAPE_INT_HANDLER( _intcallb ) \
|
||||
devcb = &tap_990_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
@ -69,11 +69,9 @@ private:
|
||||
|
||||
extern const device_type ASR733;
|
||||
|
||||
#define MCFG_ASR733_VIDEO_ADD(_tag, _intcallb) \
|
||||
MCFG_DEVICE_ADD(_tag, ASR733, 0) \
|
||||
#define MCFG_ASR733_INT_HANDLER( _intcallb ) \
|
||||
devcb = &asr733_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
|
||||
#define ASR733_KEY_PORTS \
|
||||
PORT_START("KEY0") /* keys 1-16 */ \
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) \
|
||||
|
@ -80,7 +80,7 @@ static const unsigned short vdt911_palette[] =
|
||||
Macros for model features
|
||||
*/
|
||||
/* TRUE for japanese and arabic terminals, which use 8-bit charcodes and keyboard shift modes */
|
||||
#define USES_8BIT_CHARCODES() ((m_model == vdt911_model_Japanese) /*|| (vdt->model == vdt911_model_Arabic)*/)
|
||||
#define USES_8BIT_CHARCODES() ((m_model == vdt911_model_Japanese) /*|| (m_model == vdt911_model_Arabic)*/)
|
||||
/* TRUE for keyboards which have this extra key (on the left of TAB/SKIP)
|
||||
(Most localized keyboards have it) */
|
||||
#define HAS_EXTRA_KEY_67() (! ((m_model == vdt911_model_US) || (m_model == vdt911_model_UK) || (m_model == vdt911_model_French)))
|
||||
@ -232,6 +232,13 @@ void vdt911_device::device_start()
|
||||
apply_char_overrides(sizeof(frenchWP_overrides)/sizeof(char_override_t), frenchWP_overrides, base);
|
||||
}
|
||||
|
||||
|
||||
void vdt911_device::device_reset()
|
||||
{
|
||||
m_model = (vdt911_model_t)ioport("LOCALE")->read();
|
||||
m_screen_size = (vdt911_screen_size_t)ioport("SCREEN")->read();
|
||||
}
|
||||
|
||||
/*
|
||||
Time callbacks
|
||||
*/
|
||||
@ -639,6 +646,25 @@ void vdt911_device::keyboard()
|
||||
}
|
||||
}
|
||||
|
||||
INPUT_PORTS_START( vdt911 )
|
||||
PORT_START( "LOCALE" )
|
||||
PORT_CONFNAME( 0x0f, 0x00, "Terminal language" )
|
||||
PORT_CONFSETTING( vdt911_model_US, "English US" )
|
||||
PORT_CONFSETTING( vdt911_model_UK, "English UK" )
|
||||
PORT_CONFSETTING( vdt911_model_French, "French" )
|
||||
PORT_CONFSETTING( vdt911_model_German, "German" )
|
||||
PORT_CONFSETTING( vdt911_model_Swedish, "Swedish" )
|
||||
PORT_CONFSETTING( vdt911_model_Norwegian, "Norwegian" )
|
||||
PORT_CONFSETTING( vdt911_model_FrenchWP, "French Word Processing" )
|
||||
PORT_CONFSETTING( vdt911_model_Japanese, "Japanese" )
|
||||
// PORT_CONFSETTING( vdt911_model_Arabic, "Arabic" )
|
||||
|
||||
PORT_START( "SCREEN" )
|
||||
PORT_CONFNAME( 0x01, char_960, "Terminal screen size" )
|
||||
PORT_CONFSETTING( char_960, "960 chars (12 lines)")
|
||||
PORT_CONFSETTING( char_1920, "1920 chars (24 lines)")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( vdt911 )
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(3)
|
||||
@ -656,3 +682,8 @@ machine_config_constructor vdt911_device::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( vdt911 );
|
||||
}
|
||||
|
||||
ioport_constructor vdt911_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( vdt911 );
|
||||
}
|
||||
|
@ -18,28 +18,20 @@ enum
|
||||
vdt911_chr_region_len = vdt911_japanese_chr_offset+256*vdt911_single_char_len
|
||||
};
|
||||
|
||||
enum vdt911_screen_size_t { char_960, char_1920 };
|
||||
enum vdt911_screen_size_t { char_960 = 0, char_1920 };
|
||||
enum vdt911_model_t
|
||||
{
|
||||
vdt911_model_US,
|
||||
vdt911_model_US = 0,
|
||||
vdt911_model_UK,
|
||||
vdt911_model_French,
|
||||
vdt911_model_German,
|
||||
vdt911_model_Swedish, /* Swedish/Finnish */
|
||||
vdt911_model_Norwegian, /* Norwegian/Danish */
|
||||
vdt911_model_Japanese, /* Katakana Japanese */
|
||||
/*vdt911_model_Arabic,*//* Arabic */
|
||||
vdt911_model_FrenchWP /* French word processing */
|
||||
vdt911_model_Swedish, // Swedish/Finnish
|
||||
vdt911_model_Norwegian, // Norwegian/Danish
|
||||
vdt911_model_FrenchWP, // French word processing
|
||||
vdt911_model_Japanese // Katakana Japanese
|
||||
/*vdt911_model_Arabic,*/ // Arabic
|
||||
};
|
||||
|
||||
struct vdt911_init_params_t
|
||||
{
|
||||
vdt911_screen_size_t screen_size;
|
||||
vdt911_model_t model;
|
||||
void (*int_callback)(running_machine &machine, int state);
|
||||
};
|
||||
|
||||
|
||||
class vdt911_device : public device_t
|
||||
{
|
||||
public:
|
||||
@ -54,19 +46,18 @@ public:
|
||||
{
|
||||
return downcast<vdt911_device &>(device).m_int_line.set_callback(object);
|
||||
}
|
||||
static void static_set_params(device_t &device, vdt911_screen_size_t size, vdt911_model_t model)
|
||||
{
|
||||
downcast<vdt911_device &>(device).m_screen_size = size;
|
||||
downcast<vdt911_device &>(device).m_model = model;
|
||||
}
|
||||
|
||||
void refresh(bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y);
|
||||
void keyboard();
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_config_complete();
|
||||
virtual void device_start();
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
void device_config_complete();
|
||||
void device_start();
|
||||
void device_reset();
|
||||
|
||||
machine_config_constructor device_mconfig_additions() const;
|
||||
ioport_constructor device_input_ports() const;
|
||||
|
||||
void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
||||
@ -111,19 +102,8 @@ private:
|
||||
|
||||
extern const device_type VDT911;
|
||||
|
||||
#define MCFG_VDT911_VIDEO_ADD(_tag, _intcallb, _size, _model) \
|
||||
MCFG_DEVICE_ADD(_tag, VDT911, 0) \
|
||||
devcb = &vdt911_device::static_set_int_callback( *device, DEVCB2_##_intcallb ); \
|
||||
vdt911_device::static_set_params( *device, _size, _model);
|
||||
|
||||
|
||||
|
||||
DECLARE_READ8_DEVICE_HANDLER(vdt911_cru_r);
|
||||
DECLARE_WRITE8_DEVICE_HANDLER(vdt911_cru_w);
|
||||
|
||||
void vdt911_refresh(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y);
|
||||
|
||||
void vdt911_keyboard(device_t *device);
|
||||
#define MCFG_VDT911_INT_HANDLER( _intcallb ) \
|
||||
devcb = &vdt911_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
#define VDT911_KEY_PORTS \
|
||||
PORT_START("KEY0") /* keys 1-16 */ \
|
||||
|
Loading…
Reference in New Issue
Block a user