mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
dragon32: Corrected release year and company of Spanish clones
- Added joysticks to all machines - Added floppy sounds dragon200e: Added chargen ROM, not working (possibly mc6847 issue) - Demoted to MACHINE_NOT_WORKING d64plus: Added crtc with chargen ROM and second screen output, not yet hooked up - Demoted to MACHINE_NOT_WORKING dgnalpha: Added older Boot v0.4 ROM - Replaced 5.25" floppy drives with 3.5", and added sounds
This commit is contained in:
parent
cfec997fbb
commit
0d471190d7
@ -126,9 +126,13 @@ static MACHINE_CONFIG_FRAGMENT(coco_fdc)
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(coco_fdc_device_base, fdc_drq_w))
|
||||
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":0", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":1", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":2", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":3", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":2", coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":3", coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
|
||||
MCFG_DEVICE_ADD(DISTO_TAG, MSM6242, XTAL_32_768kHz)
|
||||
MCFG_DS1315_ADD(CLOUD9_TAG)
|
||||
|
@ -11,7 +11,7 @@
|
||||
which mostly uses the same command set with some subtle differences, most
|
||||
notably the 2797 handles disk side select internally. The Dragon Alpha also
|
||||
uses the WD2797, however as this is a built in interface and not an external
|
||||
cartrige, it is dealt with in the main coco.cpp file.
|
||||
cartridge, it is dealt with in the main coco.cpp file.
|
||||
|
||||
The wd's variables are mapped to $FF48-$FF4B on the CoCo and on $FF40-$FF43
|
||||
on the Dragon. In addition, there is another register
|
||||
@ -127,9 +127,13 @@ static MACHINE_CONFIG_FRAGMENT(dragon_fdc)
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(dragon_fdc_device_base, fdc_drq_w))
|
||||
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":2", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":3", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -200,7 +204,7 @@ void dragon_fdc_device_base::dskreg_w(uint8_t data)
|
||||
{
|
||||
floppy_image_device *floppy = m_floppies[i]->get_device();
|
||||
if (floppy)
|
||||
floppy->mon_w((data && 0x04) && (i == (data & 0x03)) ? CLEAR_LINE : ASSERT_LINE);
|
||||
floppy->mon_w((data & 0x04) && (i == (data & 0x03)) ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
|
||||
// manipulate the WD2797
|
||||
|
@ -96,7 +96,7 @@ INPUT_PORTS_END
|
||||
// INPUT_PORTS( coco_joystick )
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( coco_joystick )
|
||||
INPUT_PORTS_START( coco_joystick )
|
||||
PORT_START(JOYSTICK_RX_TAG)
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xFF) PORT_CODE_DEC(KEYCODE_4_PAD) PORT_CODE_INC(KEYCODE_6_PAD) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_PLAYER(1) PORT_CONDITION(CTRL_SEL_TAG, 0x0f, EQUALS, 0x01)
|
||||
PORT_START(JOYSTICK_RY_TAG)
|
||||
@ -359,7 +359,8 @@ static MACHINE_CONFIG_START( coco, coco12_state )
|
||||
MCFG_RAM_EXTRA_OPTIONS("4K,16K,32K")
|
||||
|
||||
// software lists
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
|
||||
MCFG_SOFTWARE_LIST_ADD("coco_cart_list", "coco_cart")
|
||||
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("dragon_cart_list", "dragon_cart")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( cocoe, coco )
|
||||
|
@ -36,7 +36,6 @@ static ADDRESS_MAP_START( dragon_mem, AS_PROGRAM, 8, dragon_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INPUT PORTS
|
||||
//**************************************************************************
|
||||
@ -52,7 +51,7 @@ ADDRESS_MAP_END
|
||||
PA1: 8 9 : ; , - . /
|
||||
PA0: 0 1 2 3 4 5 6 7
|
||||
*/
|
||||
static INPUT_PORTS_START( dragon32 )
|
||||
static INPUT_PORTS_START( dragon_keyboard )
|
||||
PORT_START("row0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, dragon_state, keyboard_changed, nullptr) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, dragon_state, keyboard_changed, nullptr) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
@ -121,7 +120,18 @@ static INPUT_PORTS_START( dragon32 )
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, dragon_state, keyboard_changed, nullptr) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static SLOT_INTERFACE_START(dragon_cart)
|
||||
static INPUT_PORTS_START( dragon )
|
||||
PORT_INCLUDE(dragon_keyboard)
|
||||
PORT_INCLUDE(coco_joystick)
|
||||
PORT_INCLUDE(coco_analog_control)
|
||||
INPUT_PORTS_END
|
||||
|
||||
MC6847_GET_CHARROM_MEMBER( dragon200e_state::char_rom_r )
|
||||
{
|
||||
return m_char_rom->base()[(ch * 12 + line) & 0xfff];
|
||||
}
|
||||
|
||||
SLOT_INTERFACE_START( dragon_cart )
|
||||
SLOT_INTERFACE("dragon_fdc", DRAGON_FDC)
|
||||
SLOT_INTERFACE("sdtandy_fdc", SDTANDY_FDC)
|
||||
SLOT_INTERFACE("pak", COCO_PAK)
|
||||
@ -132,13 +142,8 @@ FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
|
||||
FLOPPY_DMK_FORMAT
|
||||
FLOPPY_FORMATS_END
|
||||
|
||||
static SLOT_INTERFACE_START( dragon_floppies )
|
||||
SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
|
||||
SLOT_INTERFACE("sd", FLOPPY_525_SD)
|
||||
SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
|
||||
SLOT_INTERFACE("dd", FLOPPY_525_DD)
|
||||
SLOT_INTERFACE("ssqd", FLOPPY_525_SSQD)
|
||||
SLOT_INTERFACE("qd", FLOPPY_525_QD)
|
||||
static SLOT_INTERFACE_START( dragon_alpha_floppies )
|
||||
SLOT_INTERFACE("dd", FLOPPY_35_DD)
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static MACHINE_CONFIG_START( dragon_base, dragon_state )
|
||||
@ -170,6 +175,7 @@ static MACHINE_CONFIG_START( dragon_base, dragon_state )
|
||||
MCFG_CASSETTE_ADD("cassette")
|
||||
MCFG_CASSETTE_FORMATS(coco_cassette_formats)
|
||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
|
||||
MCFG_CASSETTE_INTERFACE("dragon_cass")
|
||||
|
||||
MCFG_DEVICE_ADD(PRINTER_TAG, PRINTER, 0)
|
||||
|
||||
@ -183,6 +189,12 @@ static MACHINE_CONFIG_START( dragon_base, dragon_state )
|
||||
|
||||
// sound hardware
|
||||
MCFG_FRAGMENT_ADD( coco_sound )
|
||||
|
||||
// software lists
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_cart_list", "dragon_cart")
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_cass_list", "dragon_cass")
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_flop_list", "dragon_flop")
|
||||
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("coco_cart_list", "coco_cart")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( dragon32, dragon_base )
|
||||
@ -212,22 +224,46 @@ static MACHINE_CONFIG_DERIVED_CLASS( dragon64, dragon_base, dragon64_state )
|
||||
// acia
|
||||
MCFG_DEVICE_ADD("acia", MOS6551, 0)
|
||||
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
|
||||
|
||||
// software lists
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_flex_list", "dragon_flex")
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_os9_list", "dragon_os9")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon_base, dragon64_state )
|
||||
static MACHINE_CONFIG_DERIVED_CLASS( dragon200e, dragon64, dragon200e_state )
|
||||
// video hardware
|
||||
MCFG_DEVICE_MODIFY(VDG_TAG)
|
||||
MCFG_MC6847_CHARROM_CALLBACK(dragon200e_state, char_rom_r)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon64, d64plus_state )
|
||||
// internal ram
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
MCFG_RAM_MODIFY(RAM_TAG)
|
||||
MCFG_RAM_DEFAULT_SIZE("128K")
|
||||
|
||||
// cartridge
|
||||
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_cart, "dragon_fdc")
|
||||
MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(coco_state, cart_w))
|
||||
MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
|
||||
MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
|
||||
// video hardware
|
||||
MCFG_SCREEN_ADD("plus_screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_SIZE(640, 240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("hd6845", hd6845_device, screen_update)
|
||||
|
||||
// acia
|
||||
MCFG_DEVICE_ADD("acia", MOS6551, 0)
|
||||
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
|
||||
// crtc
|
||||
MCFG_MC6845_ADD("hd6845", HD6845, "plus_screen", 1000000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
|
||||
// TODO:
|
||||
// $FFE0 6845 control register
|
||||
// $FFE1 6845 data register
|
||||
// $FFE2 memory bank register - swaps lower memory banks between the standard dragon memory and the
|
||||
// three additional memory banks (A, B, C):
|
||||
// 0x00 standard Dragon 32 bank
|
||||
// 0x01 Bank C - 2k RAM (videoram)
|
||||
// 0x02 Bank A - 32k RAM (ram offset 0x10000)
|
||||
// 0x06 Bank B - 32k RAM (ram offset 0x18000)
|
||||
//
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state )
|
||||
@ -250,10 +286,14 @@ static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state )
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(dragon_alpha_state, fdc_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(dragon_alpha_state, fdc_drq_w))
|
||||
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_floppies, "qd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", dragon_floppies, "qd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":2", dragon_floppies, "qd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":3", dragon_floppies, "qd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_alpha_floppies, "dd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", dragon_alpha_floppies, "dd", dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":2", dragon_alpha_floppies, nullptr, dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":3", dragon_alpha_floppies, nullptr, dragon_alpha_state::dragon_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
|
||||
// sound hardware
|
||||
MCFG_SOUND_ADD(AY8912_TAG, AY8912, 1000000)
|
||||
@ -266,9 +306,18 @@ static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state )
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(dragon_alpha_state, pia2_pa_w))
|
||||
MCFG_PIA_IRQA_HANDLER(WRITELINE(dragon_alpha_state, pia2_firq_a))
|
||||
MCFG_PIA_IRQB_HANDLER(WRITELINE(dragon_alpha_state, pia2_firq_b))
|
||||
|
||||
// software lists
|
||||
MCFG_SOFTWARE_LIST_ADD("dgnalpha_flop_list", "dgnalpha_flop")
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_flex_list", "dragon_flex")
|
||||
MCFG_SOFTWARE_LIST_ADD("dragon_os9_list", "dragon_os9")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( tanodr64, dragon64 )
|
||||
// video hardware
|
||||
MCFG_SCREEN_MODIFY(SCREEN_TAG)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
|
||||
// cartridge
|
||||
MCFG_DEVICE_MODIFY(CARTRIDGE_TAG)
|
||||
MCFG_DEVICE_SLOT_INTERFACE(dragon_cart, "sdtandy_fdc", false)
|
||||
@ -303,14 +352,19 @@ ROM_START(dragon200e)
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "ic18_v1.4e.ic34", 0x0000, 0x4000, CRC(95af0a0a) SHA1(628543ee8b47a56df2b2175cfb763c0051517b90))
|
||||
ROM_LOAD( "ic17_v1.4e.ic37", 0x8000, 0x4000, CRC(48b985df) SHA1(c25632f3c2cfd1af3ee26b2f233a1ce1eccc365d))
|
||||
ROM_REGION( 0x1000, "gfx", ROMREGION_ERASEFF )
|
||||
ROM_REGION( 0x1000, "chargen", 0 )
|
||||
ROM_LOAD( "rom26.ic1", 0x0000, 0x1000, CRC(565724bc) SHA1(da5b756ba2a9c9ecebaa7daa8ba8bfd984d56a6f))
|
||||
ROM_END
|
||||
|
||||
ROM_START(d64plus)
|
||||
ROM_REGION(0x10000,"maincpu",0)
|
||||
ROM_LOAD("d64_1.rom", 0x0000, 0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042))
|
||||
ROM_LOAD("d64_2.rom", 0x8000, 0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e))
|
||||
ROM_LOAD("d64_1.rom", 0x0000, 0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042))
|
||||
ROM_LOAD("d64_2.rom", 0x8000, 0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e))
|
||||
ROM_REGION(0x0200, "prom", 0)
|
||||
ROM_LOAD("n82s147an.ic12", 0x0000, 0x0200, CRC(92b6728d) SHA1(bcf7c60c4e5608a58587044458d9cacaca4568aa))
|
||||
ROM_REGION(0x2000, "chargen", 0)
|
||||
ROM_LOAD("chargen.ic22", 0x0000, 0x2000, CRC(514f1450) SHA1(956c99fcca1b52e79bb5d91dbafc817c992e324a))
|
||||
ROM_REGION(0x0800, "videoram", ROMREGION_ERASE)
|
||||
ROM_END
|
||||
|
||||
ROM_START(tanodr64)
|
||||
@ -321,15 +375,19 @@ ROM_END
|
||||
|
||||
ROM_START(dgnalpha)
|
||||
ROM_REGION(0x10000,"maincpu",0)
|
||||
ROM_LOAD("alpha_bt.rom", 0x2000, 0x2000, CRC(c3dab585) SHA1(4a5851aa66eb426e9bb0bba196f1e02d48156068))
|
||||
ROM_DEFAULT_BIOS("boot10")
|
||||
ROM_SYSTEM_BIOS(0, "boot10", "Boot v1.0")
|
||||
ROMX_LOAD("alpha_bt_10.rom", 0x2000, 0x2000, CRC(c3dab585) SHA1(4a5851aa66eb426e9bb0bba196f1e02d48156068), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "boot04", "Boot v0.4")
|
||||
ROMX_LOAD("alpha_bt_04.rom", 0x2000, 0x2000, CRC(d6172b56) SHA1(69ea376dbc7418f69e9e809b448d22a4de012344), ROM_BIOS(2))
|
||||
ROM_LOAD("alpha_ba.rom", 0x8000, 0x4000, CRC(84f68bf9) SHA1(1983b4fb398e3dd9668d424c666c5a0b3f1e2b69))
|
||||
ROM_END
|
||||
|
||||
|
||||
COMP( 1982, dragon32, coco, 0, dragon32, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon 32", 0)
|
||||
COMP( 1983, dragon64, coco, 0, dragon64, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon 64", 0)
|
||||
COMP( 1983, dragon200, coco, 0, dragon64, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon 200", 0)
|
||||
COMP( 1983, dragon200e, coco, 0, dragon64, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon 200-E", 0)
|
||||
COMP( 1983, d64plus, coco, 0, d64plus, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon 64 Plus", 0)
|
||||
COMP( 1983, tanodr64, coco, 0, tanodr64, dragon32, driver_device, 0, "Dragon Data Ltd / Tano Ltd", "Tano Dragon 64 (NTSC)", 0)
|
||||
COMP( 1984, dgnalpha, coco, 0, dgnalpha, dragon32, driver_device, 0, "Dragon Data Ltd", "Dragon Alpha Prototype", 0)
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
COMP( 1982, dragon32, 0, 0, dragon32, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon 32", 0 )
|
||||
COMP( 1983, dragon64, dragon32, 0, dragon64, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon 64", 0 )
|
||||
COMP( 1985, dragon200, dragon32, 0, dragon64, dragon, driver_device, 0, "Eurohard S.A.", "Dragon 200", 0 )
|
||||
COMP( 1985, dragon200e, dragon32, 0, dragon200e, dragon, driver_device, 0, "Eurohard S.A.", "Dragon 200-E", MACHINE_NOT_WORKING )
|
||||
COMP( 1985, d64plus, dragon32, 0, d64plus, dragon, driver_device, 0, "Dragon Data Ltd / Compusense", "Dragon 64 Plus", MACHINE_NOT_WORKING )
|
||||
COMP( 1983, tanodr64, dragon32, 0, tanodr64, dragon, driver_device, 0, "Dragon Data Ltd / Tano Ltd", "Tano Dragon 64 (NTSC)", 0 )
|
||||
COMP( 1984, dgnalpha, dragon32, 0, dgnalpha, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon Professional (Alpha)", 0 )
|
||||
|
@ -31,6 +31,7 @@
|
||||
//**************************************************************************
|
||||
|
||||
INPUT_PORTS_EXTERN( coco_analog_control );
|
||||
INPUT_PORTS_EXTERN( coco_joystick );
|
||||
INPUT_PORTS_EXTERN( coco_rtc );
|
||||
INPUT_PORTS_EXTERN( coco_beckerport );
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include "includes/coco12.h"
|
||||
#include "imagedev/printer.h"
|
||||
#include "machine/mos6551.h"
|
||||
|
||||
#include "video/mc6845.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -69,4 +69,42 @@ protected:
|
||||
void page_rom(bool romswitch);
|
||||
};
|
||||
|
||||
|
||||
/* dragon200e has a character generator */
|
||||
class dragon200e_state : public dragon64_state
|
||||
{
|
||||
public:
|
||||
dragon200e_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dragon64_state(mconfig, type, tag),
|
||||
m_char_rom(*this, "chargen")
|
||||
{
|
||||
}
|
||||
|
||||
MC6847_GET_CHARROM_MEMBER(char_rom_r);
|
||||
|
||||
private:
|
||||
required_memory_region m_char_rom;
|
||||
};
|
||||
|
||||
|
||||
/* d64plus has a HD6845 and character generator */
|
||||
class d64plus_state : public dragon64_state
|
||||
{
|
||||
public:
|
||||
d64plus_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dragon64_state(mconfig, type, tag),
|
||||
m_hd6845(*this, "hd6845"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_char_rom(*this, "chargen")
|
||||
{
|
||||
}
|
||||
|
||||
MC6847_GET_CHARROM_MEMBER(char_rom_r);
|
||||
|
||||
private:
|
||||
required_device<hd6845_device> m_hd6845;
|
||||
required_memory_region m_videoram;
|
||||
required_memory_region m_char_rom;
|
||||
};
|
||||
|
||||
#endif /* __DRAGON__ */
|
||||
|
Loading…
Reference in New Issue
Block a user