| Previous | 199869 Revisions | Next |
| r19108 Thursday 22nd November, 2012 at 19:33:19 UTC by Curt Coder |
|---|
| sed1310: Cleanup. (nw) (MESS) bw2: Fixed memory mapping. (nw) (MESS) msm6255: Refactored to use device_memory_interface. (nw) (MESS) floppy: Added macros for declaring modern floppy formats. The generic floppy formats (D88/DFI/IMD/IPF/MFI/MFM) are now automatically supported in each driver using the modern floppy code. [Curt Coder] |
| [src/emu/imagedev] | floppy.c floppy.h |
| [src/emu/machine] | amigafdc.c amigafdc.h |
| [src/emu/video] | msm6255.c msm6255.h sed1330.c sed1330.h |
| [src/mess/drivers] | a5105.c amstrad.c atarist.c b2m.c bebox.c bw12.c bw2.c compis.c dmv.c einstein.c elwro800.c esq5505.c hec2hrp.c ht68k.c m5.c microdec.c mikromik.c mirage.c mz6500.c nanos.c newbrain.c next.c p8k.c pasopia7.c pc.c pc100.c pc1512.c pc8801.c pc88va.c pc9801.c pcw.c pcw16.c prof180x.c prof80.c pyl601.c qx10.c sage2.c samcoupe.c sg1000.c specpls3.c super6.c tandy2k.c wangpc.c x68k.c |
| [src/mess/includes] | apollo.h atarist.h bebox.h bw12.h bw2.h einstein.h m5.h mikromik.h newbrain.h next.h pc.h pc1512.h pcw16.h samcoupe.h super6.h x68k.h |
| [src/mess/machine] | adam_fdc.c adam_fdc.h apollo.c fd2000.c iq151_disc2.c iq151_disc2.h isa_fdc.c isa_fdc.h kc_d004.c kc_d004.h pf10.c tf20.c |
| r19107 | r19108 | |
|---|---|---|
| 14 | 14 | #include "formats/mfi_dsk.h" |
| 15 | 15 | |
| 16 | 16 | |
| 17 | static const floppy_format_type pc_floppy_formats[] = { | |
| 18 | FLOPPY_PC_FORMAT, | |
| 19 | FLOPPY_MFI_FORMAT, | |
| 20 | NULL | |
| 21 | }; | |
| 17 | FLOPPY_FORMATS_MEMBER( isa8_fdc_device::floppy_formats ) | |
| 18 | FLOPPY_PC_FORMAT | |
| 19 | FLOPPY_FORMATS_END | |
| 22 | 20 | |
| 23 | 21 | static SLOT_INTERFACE_START( pc_dd_floppies ) |
| 24 | 22 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
| 32 | 30 | |
| 33 | 31 | static MACHINE_CONFIG_FRAGMENT( cfg_xt ) |
| 34 | 32 | MCFG_PC_FDC_XT_ADD("fdc") |
| 35 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", 0, pc_floppy_formats) | |
| 36 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", 0, pc_floppy_formats) | |
| 33 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", 0, isa8_fdc_device::floppy_formats) | |
| 34 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", 0, isa8_fdc_device::floppy_formats) | |
| 37 | 35 | MACHINE_CONFIG_END |
| 38 | 36 | |
| 39 | 37 | static MACHINE_CONFIG_FRAGMENT( cfg_at ) |
| 40 | 38 | MCFG_PC_FDC_AT_ADD("fdc") |
| 41 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 42 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 39 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 40 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 43 | 41 | MACHINE_CONFIG_END |
| 44 | 42 | |
| 45 | 43 | static MACHINE_CONFIG_FRAGMENT( cfg_smc ) |
| 46 | 44 | MCFG_SMC37C78_ADD("fdc") |
| 47 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 48 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 45 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 46 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 49 | 47 | MACHINE_CONFIG_END |
| 50 | 48 | |
| 51 | 49 | static MACHINE_CONFIG_FRAGMENT( cfg_ps2 ) |
| 52 | 50 | MCFG_N82077AA_ADD("fdc", n82077aa_device::MODE_PS2) |
| 53 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 54 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 51 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 52 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 55 | 53 | MACHINE_CONFIG_END |
| 56 | 54 | |
| 57 | 55 | static MACHINE_CONFIG_FRAGMENT( cfg_superio ) |
| 58 | 56 | MCFG_PC_FDC_SUPERIO_ADD("fdc") |
| 59 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 60 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, pc_floppy_formats) | |
| 57 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 58 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", 0, isa8_fdc_device::floppy_formats) | |
| 61 | 59 | MACHINE_CONFIG_END |
| 62 | 60 | |
| 63 | 61 |
| r19107 | r19108 | |
|---|---|---|
| 28 | 28 | |
| 29 | 29 | required_device<pc_fdc_interface> fdc; |
| 30 | 30 | |
| 31 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 32 | ||
| 31 | 33 | protected: |
| 32 | 34 | // device-level overrides |
| 33 | 35 | virtual void device_start(); |
| r19107 | r19108 | |
|---|---|---|
| 105 | 105 | m_maincpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | const floppy_format_type adam_fdc_device::floppy_formats[] = { | |
| 109 | FLOPPY_ADAM_FORMAT, FLOPPY_MFM_FORMAT, FLOPPY_MFI_FORMAT, | |
| 110 | NULL | |
| 111 | }; | |
| 108 | FLOPPY_FORMATS_MEMBER( adam_fdc_device::floppy_formats ) | |
| 109 | FLOPPY_ADAM_FORMAT | |
| 110 | FLOPPY_FORMATS_END | |
| 112 | 111 | |
| 113 | 112 | static SLOT_INTERFACE_START( adam_fdc_floppies ) |
| 114 | 113 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
|---|---|---|
| 49 | 49 | |
| 50 | 50 | void fdc_intrq_w(bool state); |
| 51 | 51 | |
| 52 | | |
| 52 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 53 | 53 | |
| 54 | 54 | protected: |
| 55 | 55 | // device-level overrides |
| r19107 | r19108 | |
|---|---|---|
| 37 | 37 | #include "machine/pic8259.h" |
| 38 | 38 | |
| 39 | 39 | #include "machine/pc_fdc.h" |
| 40 | #include "formats/mfi_dsk.h" | |
| 41 | 40 | #include "formats/apollo_dsk.h" |
| 42 | 41 | |
| 43 | 42 | #include "cpu/m68000/m68000.h" |
| r19107 | r19108 | |
| 1279 | 1278 | #undef VERBOSE |
| 1280 | 1279 | #define VERBOSE 0 |
| 1281 | 1280 | |
| 1282 | static const floppy_format_type apollo_floppy_formats[] = { | |
| 1283 | FLOPPY_APOLLO_FORMAT, | |
| 1284 | FLOPPY_MFI_FORMAT, | |
| 1285 | NULL | |
| 1286 | }; | |
| 1281 | FLOPPY_FORMATS_MEMBER( apollo_state::floppy_formats ) | |
| 1282 | FLOPPY_APOLLO_FORMAT | |
| 1283 | FLOPPY_FORMATS_END | |
| 1287 | 1284 | |
| 1288 | 1285 | static SLOT_INTERFACE_START( apollo_floppies ) |
| 1289 | 1286 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 1399 | 1396 | MCFG_DUART68681_ADD( APOLLO_SIO2_TAG, XTAL_3_6864MHz, apollo_sio2_config ) |
| 1400 | 1397 | |
| 1401 | 1398 | MCFG_PC_FDC_XT_ADD(APOLLO_FDC_TAG) |
| 1402 | MCFG_FLOPPY_DRIVE_ADD(APOLLO_FDC_TAG ":0", apollo_floppies, "525hd", 0, apollo_floppy_formats) | |
| 1399 | MCFG_FLOPPY_DRIVE_ADD(APOLLO_FDC_TAG ":0", apollo_floppies, "525hd", 0, apollo_state::floppy_formats) | |
| 1403 | 1400 | |
| 1404 | 1401 | MCFG_OMTI8621_ADD(APOLLO_WDC_TAG, apollo_wdc_config) |
| 1405 | 1402 | MCFG_SC499_ADD(APOLLO_CTAPE_TAG, apollo_ctape_config) |
| r19107 | r19108 | |
|---|---|---|
| 85 | 85 | DEVCB_NULL |
| 86 | 86 | }; |
| 87 | 87 | |
| 88 | ||
| 89 | static const floppy_format_type fd2000_floppy_formats[] = { | |
| 90 | FLOPPY_MFI_FORMAT, | |
| 91 | NULL | |
| 92 | }; | |
| 93 | ||
| 94 | 88 | static SLOT_INTERFACE_START( fd2000_floppies ) |
| 95 | 89 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 96 | 90 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 107 | 101 | MCFG_VIA6522_ADD(M6522_TAG, 2000000, via_intf) |
| 108 | 102 | MCFG_UPD765A_ADD(DP8473_TAG, true, true) |
| 109 | 103 | |
| 110 | MCFG_FLOPPY_DRIVE_ADD(DP8473_TAG ":0", fd2000_floppies, "525dd", 0, fd | |
| 104 | MCFG_FLOPPY_DRIVE_ADD(DP8473_TAG ":0", fd2000_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 111 | 105 | MACHINE_CONFIG_END |
| 112 | 106 | |
| 113 | 107 |
| r19107 | r19108 | |
|---|---|---|
| 116 | 116 | } |
| 117 | 117 | }; |
| 118 | 118 | |
| 119 | static const floppy_format_type tf20_floppy_formats[] = | |
| 120 | { | |
| 121 | FLOPPY_D88_FORMAT, | |
| 122 | FLOPPY_MFM_FORMAT, | |
| 123 | FLOPPY_MFI_FORMAT, | |
| 124 | NULL | |
| 125 | }; | |
| 126 | ||
| 127 | 119 | static SLOT_INTERFACE_START( tf20_floppies ) |
| 128 | 120 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 129 | 121 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 144 | 136 | MCFG_UPD765A_ADD("5a", true, true) |
| 145 | 137 | |
| 146 | 138 | // floppy drives |
| 147 | MCFG_FLOPPY_DRIVE_ADD("5a:0", tf20_floppies, "525dd", 0, tf20_floppy_formats) | |
| 148 | MCFG_FLOPPY_DRIVE_ADD("5a:1", tf20_floppies, "525dd", 0, tf20_floppy_formats) | |
| 139 | MCFG_FLOPPY_DRIVE_ADD("5a:0", tf20_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 140 | MCFG_FLOPPY_DRIVE_ADD("5a:1", tf20_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 149 | 141 | |
| 150 | 142 | // serial interface to another device |
| 151 | 143 | MCFG_EPSON_SIO_ADD("sio") |
| r19107 | r19108 | |
|---|---|---|
| 6 | 6 | |
| 7 | 7 | #include "emu.h" |
| 8 | 8 | #include "iq151_disc2.h" |
| 9 | #include "formats/mfi_dsk.h" | |
| 10 | 9 | #include "formats/iq151_dsk.h" |
| 11 | 10 | |
| 12 | 11 | |
| r19107 | r19108 | |
| 14 | 13 | IMPLEMENTATION |
| 15 | 14 | ***************************************************************************/ |
| 16 | 15 | |
| 17 | static const floppy_format_type iq151_disc2_floppy_formats[] = { | |
| 18 | FLOPPY_IQ151_FORMAT, | |
| 19 | FLOPPY_MFI_FORMAT, | |
| 20 | NULL | |
| 21 | }; | |
| 16 | FLOPPY_FORMATS_MEMBER( iq151_disc2_device::floppy_formats ) | |
| 17 | FLOPPY_IQ151_FORMAT | |
| 18 | FLOPPY_FORMATS_END | |
| 22 | 19 | |
| 23 | 20 | static SLOT_INTERFACE_START( iq151_disc2_floppies ) |
| 24 | 21 | SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD ) |
| r19107 | r19108 | |
| 26 | 23 | |
| 27 | 24 | static MACHINE_CONFIG_FRAGMENT( iq151_disc2 ) |
| 28 | 25 | MCFG_UPD765A_ADD("fdc", false, true) |
| 29 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", iq151_disc2_floppies, "8sssd", 0, iq151_disc2_floppy_formats) | |
| 30 | MCFG_FLOPPY_DRIVE_ADD("fdc:2", iq151_disc2_floppies, "8sssd", 0, iq151_disc2_floppy_formats) | |
| 26 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", iq151_disc2_floppies, "8sssd", 0, iq151_disc2_device::floppy_formats) | |
| 27 | MCFG_FLOPPY_DRIVE_ADD("fdc:2", iq151_disc2_floppies, "8sssd", 0, iq151_disc2_device::floppy_formats) | |
| 31 | 28 | MACHINE_CONFIG_END |
| 32 | 29 | |
| 33 | 30 | ROM_START( iq151_disc2 ) |
| r19107 | r19108 | |
|---|---|---|
| 24 | 24 | // optional information overrides |
| 25 | 25 | virtual machine_config_constructor device_mconfig_additions() const; |
| 26 | 26 | virtual const rom_entry *device_rom_region() const; |
| 27 | ||
| 28 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 27 | 29 | |
| 28 | 30 | protected: |
| 29 | 31 | // device-level overrides |
| r19107 | r19108 | |
|---|---|---|
| 47 | 47 | AM_RANGE(0x0000, 0xffff) AM_READWRITE(gide_r, gide_w) |
| 48 | 48 | ADDRESS_MAP_END |
| 49 | 49 | |
| 50 | static const floppy_format_type kc_d004_floppy_formats[] = { | |
| 51 | FLOPPY_KC85_FORMAT, | |
| 52 | FLOPPY_MFI_FORMAT, | |
| 53 | NULL | |
| 54 | }; | |
| 50 | FLOPPY_FORMATS_MEMBER( kc_d004_device::floppy_formats ) | |
| 51 | FLOPPY_KC85_FORMAT | |
| 52 | FLOPPY_FORMATS_END | |
| 55 | 53 | |
| 56 | 54 | static SLOT_INTERFACE_START( kc_d004_floppies ) |
| 57 | 55 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 80 | 78 | MCFG_Z80CTC_ADD( Z80CTC_TAG, XTAL_8MHz/2, kc_d004_ctc_intf ) |
| 81 | 79 | |
| 82 | 80 | MCFG_UPD765A_ADD(UPD765_TAG, false, false) |
| 83 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", kc_d004_floppies, "525hd", 0, kc_d004_floppy_formats) | |
| 84 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", kc_d004_floppies, "525hd", 0, kc_d004_floppy_formats) | |
| 85 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":2", kc_d004_floppies, "525hd", 0, kc_d004_floppy_formats) | |
| 86 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":3", kc_d004_floppies, "525hd", 0, kc_d004_floppy_formats) | |
| 81 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", kc_d004_floppies, "525hd", 0, kc_d004_device::floppy_formats) | |
| 82 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", kc_d004_floppies, "525hd", 0, kc_d004_device::floppy_formats) | |
| 83 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":2", kc_d004_floppies, "525hd", 0, kc_d004_device::floppy_formats) | |
| 84 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":3", kc_d004_floppies, "525hd", 0, kc_d004_device::floppy_formats) | |
| 87 | 85 | MACHINE_CONFIG_END |
| 88 | 86 | |
| 89 | 87 | static MACHINE_CONFIG_FRAGMENT(kc_d004_gide) |
| r19107 | r19108 | |
|---|---|---|
| 33 | 33 | virtual machine_config_constructor device_mconfig_additions() const; |
| 34 | 34 | virtual const rom_entry *device_rom_region() const; |
| 35 | 35 | |
| 36 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 37 | ||
| 36 | 38 | protected: |
| 37 | 39 | // device-level overrides |
| 38 | 40 | virtual void device_start(); |
| r19107 | r19108 | |
|---|---|---|
| 58 | 58 | // machine configurations |
| 59 | 59 | //------------------------------------------------- |
| 60 | 60 | |
| 61 | static const floppy_format_type pf10_floppy_formats[] = | |
| 62 | { | |
| 63 | FLOPPY_D88_FORMAT, | |
| 64 | FLOPPY_MFM_FORMAT, | |
| 65 | FLOPPY_MFI_FORMAT, | |
| 66 | NULL | |
| 67 | }; | |
| 68 | ||
| 69 | 61 | static SLOT_INTERFACE_START( pf10_floppies ) |
| 70 | 62 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| 71 | 63 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 76 | 68 | MCFG_CPU_IO_MAP(cpu_io) |
| 77 | 69 | |
| 78 | 70 | MCFG_UPD765A_ADD("upd765a", false, true) |
| 79 | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", pf10_floppies, "35dd", 0, pf | |
| 71 | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", pf10_floppies, "35dd", 0, floppy_image_device::default_floppy_formats) // SMD-165 | |
| 80 | 72 | |
| 81 | 73 | MCFG_EPSON_SIO_ADD("sio") |
| 82 | 74 | MACHINE_CONFIG_END |
| r19107 | r19108 | |
|---|---|---|
| 273 | 273 | |
| 274 | 274 | floppy_image_device *floppy_devices[2]; |
| 275 | 275 | |
| 276 | | |
| 276 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 277 | 277 | TIMER_CALLBACK_MEMBER(st_mouse_tick); |
| 278 | 278 | TIMER_CALLBACK_MEMBER(atarist_shifter_tick); |
| 279 | 279 | TIMER_CALLBACK_MEMBER(atarist_glue_tick); |
| r19107 | r19108 | |
|---|---|---|
| 23 | 23 | #include "machine/sc499.h" |
| 24 | 24 | #include "machine/3c505.h" |
| 25 | 25 | #include "machine/68681.h" |
| 26 | #include "machine/pc_fdc.h" | |
| 26 | 27 | |
| 27 | 28 | #ifndef VERBOSE |
| 28 | 29 | #define VERBOSE 0 |
| r19107 | r19108 | |
| 185 | 186 | |
| 186 | 187 | void fdc_interrupt(bool state); |
| 187 | 188 | void fdc_dma_drq(bool state); |
| 189 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 188 | 190 | }; |
| 189 | 191 | |
| 190 | 192 | MACHINE_CONFIG_EXTERN( apollo ); |
| r19107 | r19108 | |
|---|---|---|
| 7 | 7 | #ifndef PCW16_H_ |
| 8 | 8 | #define PCW16_H_ |
| 9 | 9 | |
| 10 | #include "machine/upd765.h" /* FDC superio */ | |
| 10 | 11 | |
| 11 | 12 | #define PCW16_BORDER_HEIGHT 8 |
| 12 | 13 | #define PCW16_BORDER_WIDTH 8 |
| r19107 | r19108 | |
| 113 | 114 | |
| 114 | 115 | void trigger_fdc_int(); |
| 115 | 116 | void fdc_interrupt(bool state); |
| 117 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 116 | 118 | }; |
| 117 | 119 | |
| 118 | 120 | #endif /* PCW16_H_ */ |
| r19107 | r19108 | |
|---|---|---|
| 13 | 13 | #include "machine/serial.h" |
| 14 | 14 | #include "machine/ser_mouse.h" |
| 15 | 15 | #include "machine/pc_kbdc.h" |
| 16 | #include "machine/upd765.h" | |
| 16 | 17 | |
| 17 | 18 | class pc_state : public driver_device |
| 18 | 19 | { |
| r19107 | r19108 | |
| 129 | 130 | |
| 130 | 131 | void fdc_interrupt(bool state); |
| 131 | 132 | void fdc_dma_drq(bool state); |
| 133 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 132 | 134 | }; |
| 133 | 135 | |
| 134 | 136 | /*----------- defined in machine/pc.c -----------*/ |
| r19107 | r19108 | |
|---|---|---|
| 8 | 8 | #include "cpu/z80/z80.h" |
| 9 | 9 | #include "cpu/z80/z80daisy.h" |
| 10 | 10 | #include "cpu/cop400/cop400.h" |
| 11 | #include "ma | |
| 11 | #include "imagedev/cassette.h" | |
| 12 | 12 | #include "machine/6850acia.h" |
| 13 | 13 | #include "machine/adc0808.h" |
| 14 | 14 | #include "machine/z80ctc.h" |
| 15 | 15 | #include "machine/z80sio.h" |
| 16 | #include "imagedev/flopdrv.h" | |
| 17 | #include "formats/basicdsk.h" | |
| 18 | #include "imagedev/cassette.h" | |
| 19 | 16 | #include "machine/rescap.h" |
| 20 | 17 | #include "machine/ram.h" |
| 18 | #include "machine/upd765.h" | |
| 21 | 19 | |
| 22 | 20 | #define SCREEN_TAG "screen" |
| 23 | 21 | #define Z80_TAG "409" |
| r19107 | r19108 | |
|---|---|---|
| 109 | 109 | int m_motor1; |
| 110 | 110 | TIMER_DEVICE_CALLBACK_MEMBER(floppy_motor_off_tick); |
| 111 | 111 | DECLARE_WRITE_LINE_MEMBER(pit_out0_w); |
| 112 | DECLARE_FLOPPY_FORMATS( bw12_floppy_formats ); | |
| 113 | DECLARE_FLOPPY_FORMATS( bw14_floppy_formats ); | |
| 112 | 114 | }; |
| 113 | 115 | |
| 114 | 116 | #endif |
| r19107 | r19108 | |
|---|---|---|
| 67 | 67 | UINT8 *m_crtc_ram; |
| 68 | 68 | UINT8 m_de; |
| 69 | 69 | |
| 70 | | |
| 70 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 71 | 71 | DECLARE_WRITE8_MEMBER(einstein_80col_ram_w); |
| 72 | 72 | DECLARE_READ8_MEMBER(einstein_80col_ram_r); |
| 73 | 73 | DECLARE_READ8_MEMBER(einstein_80col_state_r); |
| r19107 | r19108 | |
|---|---|---|
| 11 | 11 | #ifndef SAMCOUPE_H_ |
| 12 | 12 | #define SAMCOUPE_H_ |
| 13 | 13 | |
| 14 | #include "machine/wd1772.h" | |
| 15 | ||
| 14 | 16 | /* screen dimensions */ |
| 15 | 17 | #define SAM_BLOCK 8 |
| 16 | 18 | |
| r19107 | r19108 | |
| 114 | 116 | |
| 115 | 117 | UINT8* sam_bank_read_ptr[4]; |
| 116 | 118 | UINT8* sam_bank_write_ptr[4]; |
| 117 | ||
| 119 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 118 | 120 | }; |
| 119 | 121 | |
| 120 | 122 |
| r19107 | r19108 | |
|---|---|---|
| 114 | 114 | void mo_irq(bool state); |
| 115 | 115 | void mo_drq(bool state); |
| 116 | 116 | |
| 117 | | |
| 117 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 118 | 118 | static const cdrom_interface cdrom_intf; |
| 119 | 119 | static const harddisk_interface harddisk_intf; |
| 120 | 120 |
| r19107 | r19108 | |
|---|---|---|
| 73 | 73 | DECLARE_WRITE_LINE_MEMBER(sordm5_video_interrupt_callback); |
| 74 | 74 | |
| 75 | 75 | void fdc_irq(bool state); |
| 76 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 76 | 77 | }; |
| 77 | 78 | |
| 78 | 79 | #endif |
| r19107 | r19108 | |
|---|---|---|
| 74 | 74 | void floppy_load_unload(); |
| 75 | 75 | int floppy_load(floppy_image_device *dev); |
| 76 | 76 | void floppy_unload(floppy_image_device *dev); |
| 77 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 77 | 78 | |
| 78 | 79 | struct |
| 79 | 80 | { |
| r19107 | r19108 | |
|---|---|---|
| 9 | 9 | #ifndef BEBOX_H_ |
| 10 | 10 | #define BEBOX_H_ |
| 11 | 11 | |
| 12 | #include "emu.h" | |
| 12 | 13 | #include "machine/ins8250.h" |
| 13 | 14 | #include "machine/8237dma.h" |
| 14 | 15 | #include "machine/53c810.h" |
| 16 | #include "machine/upd765.h" | |
| 15 | 17 | |
| 16 | 18 | struct bebox_devices_t |
| 17 | 19 | { |
| r19107 | r19108 | |
| 86 | 88 | |
| 87 | 89 | void fdc_interrupt(bool state); |
| 88 | 90 | void fdc_dma_drq(bool state); |
| 91 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 89 | 92 | }; |
| 90 | 93 | |
| 91 | 94 |
| r19107 | r19108 | |
|---|---|---|
| 71 | 71 | DECLARE_WRITE_LINE_MEMBER( fr_w ); |
| 72 | 72 | void fdc_intrq_w(bool state); |
| 73 | 73 | void fdc_drq_w(bool state); |
| 74 | static const floppy_format_type floppy_formats[]; | |
| 75 | 74 | |
| 76 | 75 | void bankswitch(); |
| 77 | 76 |
| r19107 | r19108 | |
|---|---|---|
| 6 | 6 | #include "emu.h" |
| 7 | 7 | #include "cpu/z80/z80.h" |
| 8 | 8 | #include "formats/bw2_dsk.h" |
| 9 | #include "formats/hxcmfm_dsk.h" | |
| 10 | #include "formats/imd_dsk.h" | |
| 11 | #include "formats/mfi_dsk.h" | |
| 12 | 9 | #include "machine/bw2exp.h" |
| 13 | 10 | #include "machine/ctronics.h" |
| 14 | 11 | #include "machine/i8251.h" |
| r19107 | r19108 | |
| 74 | 71 | |
| 75 | 72 | void fdc_intrq_w(bool state); |
| 76 | 73 | void fdc_drq_w(bool state); |
| 77 | | |
| 74 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 78 | 75 | |
| 79 | 76 | // keyboard state |
| 80 | 77 | UINT8 m_kb; |
| r19107 | r19108 | |
|---|---|---|
| 155 | 155 | DECLARE_INPUT_CHANGED_MEMBER( mouse_button_2_changed ); |
| 156 | 156 | DECLARE_INPUT_CHANGED_MEMBER( mouse_x_changed ); |
| 157 | 157 | DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed ); |
| 158 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 158 | 159 | |
| 159 | 160 | // system status register |
| 160 | 161 | int m_pit1; |
| r19107 | r19108 | |
|---|---|---|
| 118 | 118 | int m_tc; |
| 119 | 119 | UINT32 screen_update_mm1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 120 | 120 | TIMER_DEVICE_CALLBACK_MEMBER(kbclk_tick); |
| 121 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 121 | 122 | }; |
| 122 | 123 | |
| 123 | 124 |
| r19107 | r19108 | |
|---|---|---|
| 977 | 977 | m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE); |
| 978 | 978 | } |
| 979 | 979 | |
| 980 | static const floppy_format_type pasopia7_floppy_formats[] = { | |
| 981 | FLOPPY_MFI_FORMAT, | |
| 982 | NULL | |
| 983 | }; | |
| 984 | ||
| 985 | 980 | static SLOT_INTERFACE_START( pasopia7_floppies ) |
| 986 | 981 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 987 | 982 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1026 | 1021 | MCFG_I8255_ADD( "ppi8255_1", ppi8255_intf_1 ) |
| 1027 | 1022 | MCFG_I8255_ADD( "ppi8255_2", ppi8255_intf_2 ) |
| 1028 | 1023 | MCFG_UPD765A_ADD("fdc", true, true) |
| 1029 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pasopia7_floppies, "525hd", 0, pasopia7_floppy_formats) | |
| 1030 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pasopia7_floppies, "525hd", 0, pasopia7_floppy_formats) | |
| 1024 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pasopia7_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 1025 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pasopia7_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 1031 | 1026 | MACHINE_CONFIG_END |
| 1032 | 1027 | |
| 1033 | 1028 | static MACHINE_CONFIG_DERIVED( p7_raster, p7_base ) |
| r19107 | r19108 | |
|---|---|---|
| 180 | 180 | } |
| 181 | 181 | } |
| 182 | 182 | |
| 183 | static const floppy_format_type dmv_floppy_formats[] = { | |
| 184 | FLOPPY_MFI_FORMAT, | |
| 185 | NULL | |
| 186 | }; | |
| 187 | ||
| 188 | 183 | static SLOT_INTERFACE_START( dmv_floppies ) |
| 189 | 184 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 190 | 185 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 333 | 328 | MCFG_UPD7220_ADD( "upd7220", XTAL_4MHz, hgdc_intf, upd7220_map ) |
| 334 | 329 | MCFG_I8237_ADD( "dma8237", XTAL_4MHz, dmv_dma8237_config ) |
| 335 | 330 | MCFG_UPD765A_ADD( "upd765", true, true ) |
| 336 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", dmv_floppies, "525dd", 0, dmv_floppy_formats) | |
| 337 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", dmv_floppies, "525dd", 0, dmv_floppy_formats) | |
| 331 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", dmv_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 332 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", dmv_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 338 | 333 | MACHINE_CONFIG_END |
| 339 | 334 | |
| 340 | 335 | /* ROM definition */ |
| r19107 | r19108 | |
|---|---|---|
| 335 | 335 | 1 /* first day of week */ |
| 336 | 336 | }; |
| 337 | 337 | |
| 338 | ||
| 339 | static const floppy_format_type compis_floppy_formats[] = { | |
| 340 | FLOPPY_MFI_FORMAT, | |
| 341 | NULL | |
| 342 | }; | |
| 343 | ||
| 344 | 338 | static SLOT_INTERFACE_START( compis_floppies ) |
| 345 | 339 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 346 | 340 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 386 | 380 | MCFG_I8251_ADD("uart", compis_usart_interface) |
| 387 | 381 | MCFG_MM58274C_ADD("mm58274c", compis_mm58274c_interface) |
| 388 | 382 | MCFG_I8272A_ADD("i8272a", true) |
| 389 | MCFG_FLOPPY_DRIVE_ADD("i8272a:0", compis_floppies, "525qd", 0, compis_floppy_formats) | |
| 390 | MCFG_FLOPPY_DRIVE_ADD("i8272a:1", compis_floppies, "525qd", 0, compis_floppy_formats) | |
| 383 | MCFG_FLOPPY_DRIVE_ADD("i8272a:0", compis_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 384 | MCFG_FLOPPY_DRIVE_ADD("i8272a:1", compis_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 391 | 385 | MCFG_COMPIS_KEYBOARD_ADD() |
| 392 | 386 | |
| 393 | 387 | /* software lists */ |
| r19107 | r19108 | |
| 426 | 420 | MCFG_I8251_ADD("uart", compis_usart_interface) |
| 427 | 421 | MCFG_MM58274C_ADD("mm58274c", compis_mm58274c_interface) |
| 428 | 422 | MCFG_I8272A_ADD("i8272a", true) |
| 429 | MCFG_FLOPPY_DRIVE_ADD("i8272a:0", compis_floppies, "525qd", 0, compis_floppy_formats) | |
| 430 | MCFG_FLOPPY_DRIVE_ADD("i8272a:1", compis_floppies, "525qd", 0, compis_floppy_formats) | |
| 423 | MCFG_FLOPPY_DRIVE_ADD("i8272a:0", compis_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 424 | MCFG_FLOPPY_DRIVE_ADD("i8272a:1", compis_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 431 | 425 | MCFG_COMPIS_KEYBOARD_ADD() |
| 432 | 426 | |
| 433 | 427 | /* software lists */ |
| r19107 | r19108 | |
|---|---|---|
| 560 | 560 | // upd765_interface fdc_intf |
| 561 | 561 | //------------------------------------------------- |
| 562 | 562 | |
| 563 | static const floppy_format_type m5_floppy_formats[] = { | |
| 564 | FLOPPY_M5_FORMAT, | |
| 565 | FLOPPY_MFI_FORMAT, | |
| 566 | NULL | |
| 567 | }; | |
| 563 | FLOPPY_FORMATS_MEMBER( m5_state::floppy_formats ) | |
| 564 | FLOPPY_M5_FORMAT | |
| 565 | FLOPPY_FORMATS_END | |
| 568 | 566 | |
| 569 | 567 | static SLOT_INTERFACE_START( m5_floppies ) |
| 570 | 568 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
| 665 | 663 | MCFG_CASSETTE_ADD(CASSETTE_TAG, cassette_intf) |
| 666 | 664 | MCFG_I8255_ADD(I8255A_TAG, ppi_intf) |
| 667 | 665 | MCFG_UPD765A_ADD(UPD765_TAG, true, true) |
| 668 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", m5_floppies, "525dd", 0, m5_floppy_formats) | |
| 666 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", m5_floppies, "525dd", 0, m5_state::floppy_formats) | |
| 669 | 667 | |
| 670 | 668 | // cartridge |
| 671 | 669 | MCFG_CARTSLOT_ADD("cart") |
| r19107 | r19108 | |
|---|---|---|
| 472 | 472 | } |
| 473 | 473 | } |
| 474 | 474 | |
| 475 | static const floppy_format_type pc100_floppy_formats[] = { | |
| 476 | FLOPPY_D88_FORMAT, | |
| 477 | FLOPPY_MFI_FORMAT, | |
| 478 | NULL | |
| 479 | }; | |
| 480 | ||
| 481 | 475 | static SLOT_INTERFACE_START( pc100_floppies ) |
| 482 | 476 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 483 | 477 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 506 | 500 | MCFG_UPD765A_ADD("upd765", true, true) |
| 507 | 501 | MCFG_MSM58321_ADD("rtc", XTAL_32_768kHz, rtc_intf) |
| 508 | 502 | |
| 509 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc100_floppies, "525hd", 0, pc100_floppy_formats) | |
| 510 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc100_floppies, "525hd", 0, pc100_floppy_formats) | |
| 503 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc100_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 504 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc100_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 511 | 505 | |
| 512 | 506 | /* video hardware */ |
| 513 | 507 | MCFG_SCREEN_ADD("screen", RASTER) |
| r19107 | r19108 | |
|---|---|---|
| 119 | 119 | //printf("%02x DRQ\n",state); |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | static const floppy_format_type mz6500_floppy_formats[] = { | |
| 123 | FLOPPY_MFI_FORMAT, | |
| 124 | NULL | |
| 125 | }; | |
| 126 | ||
| 127 | 122 | static SLOT_INTERFACE_START( mz6500_floppies ) |
| 128 | 123 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 129 | 124 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 162 | 157 | /* Devices */ |
| 163 | 158 | MCFG_UPD7220_ADD("upd7220", 4000000, hgdc_intf, upd7220_map) |
| 164 | 159 | MCFG_UPD765A_ADD("upd765", true, true) |
| 165 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", mz6500_floppies, "525hd", 0, mz6500_floppy_formats) | |
| 166 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", mz6500_floppies, "525hd", 0, mz6500_floppy_formats) | |
| 160 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", mz6500_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 161 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", mz6500_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 167 | 162 | MACHINE_CONFIG_END |
| 168 | 163 | |
| 169 | 164 | /* ROM definition */ |
| r19107 | r19108 | |
|---|---|---|
| 613 | 613 | SLOT_INTERFACE( "525dd", FLOPPY_525_SSDD ) |
| 614 | 614 | SLOT_INTERFACE_END |
| 615 | 615 | |
| 616 | static const floppy_format_type bw12_floppy_formats[] = { | |
| 617 | FLOPPY_BW12_FORMAT, | |
| 618 | FLOPPY_IMD_FORMAT, | |
| 619 | FLOPPY_MFI_FORMAT, | |
| 620 | FLOPPY_MFM_FORMAT, | |
| 621 | NULL | |
| 622 | }; | |
| 616 | FLOPPY_FORMATS_MEMBER( bw12_state::bw12_floppy_formats ) | |
| 617 | FLOPPY_BW12_FORMAT | |
| 618 | FLOPPY_FORMATS_END | |
| 623 | 619 | |
| 624 | 620 | static SLOT_INTERFACE_START( bw14_floppies ) |
| 625 | 621 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 626 | 622 | SLOT_INTERFACE_END |
| 627 | 623 | |
| 628 | static const floppy_format_type bw14_floppy_formats[] = { | |
| 629 | FLOPPY_BW12_FORMAT, | |
| 630 | FLOPPY_IMD_FORMAT, | |
| 631 | FLOPPY_MFI_FORMAT, | |
| 632 | FLOPPY_MFM_FORMAT, | |
| 633 | NULL | |
| 634 | }; | |
| 624 | FLOPPY_FORMATS_MEMBER( bw12_state::bw14_floppy_formats ) | |
| 625 | FLOPPY_BW12_FORMAT | |
| 626 | FLOPPY_FORMATS_END | |
| 635 | 627 | |
| 636 | 628 | /* F4 Character Displayer */ |
| 637 | 629 | static const gfx_layout bw12_charlayout = |
| r19107 | r19108 | |
| 691 | 683 | |
| 692 | 684 | static MACHINE_CONFIG_DERIVED( bw12, common ) |
| 693 | 685 | /* floppy drives */ |
| 694 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", bw12_floppies, "525dd", 0, bw12_floppy_formats) | |
| 695 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", bw12_floppies, "525dd", 0, bw12_floppy_formats) | |
| 686 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", bw12_floppies, "525dd", 0, bw12_state::bw12_floppy_formats) | |
| 687 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", bw12_floppies, "525dd", 0, bw12_state::bw12_floppy_formats) | |
| 696 | 688 | |
| 697 | 689 | // software lists |
| 698 | 690 | MCFG_SOFTWARE_LIST_ADD("flop_list", "bw12") |
| r19107 | r19108 | |
| 704 | 696 | |
| 705 | 697 | static MACHINE_CONFIG_DERIVED( bw14, common ) |
| 706 | 698 | /* floppy drives */ |
| 707 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", bw14_floppies, "525dd", 0, bw14_floppy_formats) | |
| 708 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", bw14_floppies, "525dd", 0, bw14_floppy_formats) | |
| 699 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", bw14_floppies, "525dd", 0, bw12_state::bw14_floppy_formats) | |
| 700 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", bw14_floppies, "525dd", 0, bw12_state::bw14_floppy_formats) | |
| 709 | 701 | |
| 710 | 702 | /* internal ram */ |
| 711 | 703 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 507 | 507 | // upd765_interface fdc_intf |
| 508 | 508 | //------------------------------------------------- |
| 509 | 509 | |
| 510 | static const floppy_format_type prof80_floppy_formats[] = { | |
| 511 | FLOPPY_MFI_FORMAT, | |
| 512 | NULL | |
| 513 | }; | |
| 514 | ||
| 515 | 510 | static SLOT_INTERFACE_START( prof80_floppies ) |
| 516 | 511 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 517 | 512 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 623 | 618 | // devices |
| 624 | 619 | MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) |
| 625 | 620 | MCFG_UPD765A_ADD(UPD765_TAG, false, true) |
| 626 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", prof80_floppies, "525hd", 0, prof80_floppy_formats) | |
| 627 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", prof80_floppies, "525hd", 0, prof80_floppy_formats) | |
| 621 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", prof80_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 622 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", prof80_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 628 | 623 | |
| 629 | 624 | // ECB bus |
| 630 | 625 | MCFG_ECBBUS_ADD(Z80_TAG, ecb_intf) |
| r19107 | r19108 | |
|---|---|---|
| 918 | 918 | static INPUT_PORTS_START( next ) |
| 919 | 919 | INPUT_PORTS_END |
| 920 | 920 | |
| 921 | const floppy_format_type next_state::floppy_formats[] = { | |
| 922 | FLOPPY_PC_FORMAT, | |
| 923 | FLOPPY_MFI_FORMAT, | |
| 924 | NULL | |
| 925 | }; | |
| 921 | FLOPPY_FORMATS_MEMBER( next_state::floppy_formats ) | |
| 922 | FLOPPY_PC_FORMAT | |
| 923 | FLOPPY_FORMATS_END | |
| 926 | 924 | |
| 927 | 925 | static SLOT_INTERFACE_START( next_floppies ) |
| 928 | 926 | SLOT_INTERFACE( "35ed", FLOPPY_35_ED ) |
| r19107 | r19108 | |
|---|---|---|
| 184 | 184 | LEGACY_FLOPPY_OPTIONS_END |
| 185 | 185 | */ |
| 186 | 186 | |
| 187 | static const floppy_format_type floppy_formats[] = { | |
| 188 | FLOPPY_MFM_FORMAT, FLOPPY_MFI_FORMAT, | |
| 189 | NULL | |
| 190 | }; | |
| 191 | ||
| 192 | 187 | static SLOT_INTERFACE_START( b2m_floppies ) |
| 193 | 188 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 194 | 189 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 234 | 229 | |
| 235 | 230 | MCFG_WD1773x_ADD("wd1793", XTAL_8MHz ) |
| 236 | 231 | |
| 237 | MCFG_FLOPPY_DRIVE_ADD("fd0", b2m_floppies, "525dd", 0, floppy_formats) | |
| 238 | MCFG_FLOPPY_DRIVE_ADD("fd1", b2m_floppies, "525dd", 0, floppy_formats) | |
| 232 | MCFG_FLOPPY_DRIVE_ADD("fd0", b2m_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 233 | MCFG_FLOPPY_DRIVE_ADD("fd1", b2m_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 239 | 234 | |
| 240 | 235 | /* internal ram */ |
| 241 | 236 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 88 | 88 | { |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | static const floppy_format_type microdec_floppy_formats[] = { | |
| 92 | FLOPPY_MFI_FORMAT, | |
| 93 | NULL | |
| 94 | }; | |
| 95 | ||
| 96 | 91 | static SLOT_INTERFACE_START( microdec_floppies ) |
| 97 | 92 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 98 | 93 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 108 | 103 | MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) |
| 109 | 104 | |
| 110 | 105 | MCFG_UPD765A_ADD("upd765", true, true) |
| 111 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", microdec_floppies, "525hd", 0, microdec_floppy_formats) | |
| 112 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", microdec_floppies, "525hd", 0, microdec_floppy_formats) | |
| 106 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", microdec_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 107 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", microdec_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 113 | 108 | MACHINE_CONFIG_END |
| 114 | 109 | |
| 115 | 110 | /* ROM definition */ |
| r19107 | r19108 | |
|---|---|---|
| 185 | 185 | |
| 186 | 186 | /* Video */ |
| 187 | 187 | |
| 188 | static const floppy_format_type prof180x_floppy_formats[] = { | |
| 189 | FLOPPY_MFI_FORMAT, | |
| 190 | NULL | |
| 191 | }; | |
| 192 | ||
| 193 | 188 | static SLOT_INTERFACE_START( prof180x_floppies ) |
| 194 | 189 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 195 | 190 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 237 | 232 | |
| 238 | 233 | /* devices */ |
| 239 | 234 | MCFG_UPD765A_ADD(FDC9268_TAG, false, true) |
| 240 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":0", prof180x_floppies, "525hd", 0, prof180x_floppy_formats) | |
| 241 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":1", prof180x_floppies, "525hd", 0, prof180x_floppy_formats) | |
| 242 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":2", prof180x_floppies, "525hd", 0, prof180x_floppy_formats) | |
| 243 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":3", prof180x_floppies, "525hd", 0, prof180x_floppy_formats) | |
| 235 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":0", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 236 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":1", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 237 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":2", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 238 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":3", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 244 | 239 | |
| 245 | 240 | //MCFG_RTC8583_ADD(MK3835_TAG, rtc_intf) |
| 246 | 241 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| r19107 | r19108 | |
|---|---|---|
| 364 | 364 | m_floppy = 0; |
| 365 | 365 | } |
| 366 | 366 | |
| 367 | static const floppy_format_type specpls3_floppy_formats[] = { | |
| 368 | FLOPPY_MFI_FORMAT, | |
| 369 | NULL | |
| 370 | }; | |
| 371 | ||
| 372 | 367 | static SLOT_INTERFACE_START( specpls3_floppies ) |
| 373 | 368 | SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD ) |
| 374 | 369 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 401 | 396 | MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum_plus3 ) |
| 402 | 397 | |
| 403 | 398 | MCFG_UPD765A_ADD("upd765", true, true) |
| 404 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", specpls3_floppies, "3ssdd", 0, specpls3_floppy_formats) | |
| 405 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", specpls3_floppies, "3ssdd", 0, specpls3_floppy_formats) | |
| 399 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", specpls3_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 400 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", specpls3_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 406 | 401 | MACHINE_CONFIG_END |
| 407 | 402 | |
| 408 | 403 | /*************************************************************************** |
| r19107 | r19108 | |
|---|---|---|
| 2627 | 2627 | m_is_32bit = true; |
| 2628 | 2628 | } |
| 2629 | 2629 | |
| 2630 | static const floppy_format_type x68k_floppy_formats[] = { | |
| 2631 | FLOPPY_XDF_FORMAT, | |
| 2632 | FLOPPY_MFI_FORMAT, | |
| 2633 | NULL | |
| 2634 | }; | |
| 2630 | FLOPPY_FORMATS_MEMBER( x68k_state::floppy_formats ) | |
| 2631 | FLOPPY_XDF_FORMAT | |
| 2632 | FLOPPY_FORMATS_END | |
| 2635 | 2633 | |
| 2636 | 2634 | static SLOT_INTERFACE_START( x68k_floppies ) |
| 2637 | 2635 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 2687 | 2685 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) |
| 2688 | 2686 | |
| 2689 | 2687 | MCFG_UPD72065_ADD("upd72065", true, true) |
| 2690 | MCFG_FLOPPY_DRIVE_ADD("upd72065:0", x68k_floppies, "525hd", 0, x68k_floppy_formats) | |
| 2691 | MCFG_FLOPPY_DRIVE_ADD("upd72065:1", x68k_floppies, "525hd", 0, x68k_floppy_formats) | |
| 2692 | MCFG_FLOPPY_DRIVE_ADD("upd72065:2", x68k_floppies, "525hd", 0, x68k_floppy_formats) | |
| 2693 | MCFG_FLOPPY_DRIVE_ADD("upd72065:3", x68k_floppies, "525hd", 0, x68k_floppy_formats) | |
| 2688 | MCFG_FLOPPY_DRIVE_ADD("upd72065:0", x68k_floppies, "525hd", 0, x68k_state::floppy_formats) | |
| 2689 | MCFG_FLOPPY_DRIVE_ADD("upd72065:1", x68k_floppies, "525hd", 0, x68k_state::floppy_formats) | |
| 2690 | MCFG_FLOPPY_DRIVE_ADD("upd72065:2", x68k_floppies, "525hd", 0, x68k_state::floppy_formats) | |
| 2691 | MCFG_FLOPPY_DRIVE_ADD("upd72065:3", x68k_floppies, "525hd", 0, x68k_state::floppy_formats) | |
| 2694 | 2692 | |
| 2695 | 2693 | MCFG_SOFTWARE_LIST_ADD("flop_list","x68k_flop") |
| 2696 | 2694 |
| r19107 | r19108 | |
|---|---|---|
| 2305 | 2305 | ste_state::state_save(); |
| 2306 | 2306 | } |
| 2307 | 2307 | |
| 2308 | const floppy_format_type st_state::floppy_formats[] = { | |
| 2309 | FLOPPY_ST_FORMAT, FLOPPY_MSA_FORMAT, FLOPPY_PASTI_FORMAT, FLOPPY_IPF_FORMAT, FLOPPY_MFI_FORMAT, FLOPPY_DFI_FORMAT, | |
| 2310 | NULL | |
| 2311 | }; | |
| 2308 | FLOPPY_FORMATS_MEMBER( st_state::floppy_formats ) | |
| 2309 | FLOPPY_ST_FORMAT, FLOPPY_MSA_FORMAT, FLOPPY_PASTI_FORMAT | |
| 2310 | FLOPPY_FORMATS_END | |
| 2312 | 2311 | |
| 2313 | 2312 | static SLOT_INTERFACE_START( atari_floppies ) |
| 2314 | 2313 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| r19107 | r19108 | |
|---|---|---|
| 2271 | 2271 | |
| 2272 | 2272 | /* Floppy Configuration */ |
| 2273 | 2273 | |
| 2274 | ||
| 2275 | static const floppy_format_type pc88_floppy_formats[] = { | |
| 2276 | FLOPPY_D88_FORMAT, | |
| 2277 | FLOPPY_MFI_FORMAT, | |
| 2278 | NULL | |
| 2279 | }; | |
| 2280 | ||
| 2281 | 2274 | static SLOT_INTERFACE_START( pc88_floppies ) |
| 2282 | 2275 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 2283 | 2276 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 2702 | 2695 | |
| 2703 | 2696 | MCFG_I8251_ADD(I8251_TAG, uart_intf) |
| 2704 | 2697 | |
| 2705 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc88_floppies, "525hd", 0, pc88_floppy_formats) | |
| 2706 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc88_floppies, "525hd", 0, pc88_floppy_formats) | |
| 2698 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc88_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2699 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc88_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2707 | 2700 | MCFG_SOFTWARE_LIST_ADD("disk_list","pc8801_flop") |
| 2708 | 2701 | |
| 2709 | 2702 | /* video hardware */ |
| r19107 | r19108 | |
|---|---|---|
| 1266 | 1266 | PORT_BIT( 0xff, 0x00, IPT_UNUSED) |
| 1267 | 1267 | INPUT_PORTS_END |
| 1268 | 1268 | |
| 1269 | static const floppy_format_type pcw_floppy_formats[] = { | |
| 1270 | FLOPPY_MFI_FORMAT, | |
| 1271 | NULL | |
| 1272 | }; | |
| 1273 | ||
| 1274 | 1269 | static SLOT_INTERFACE_START( pcw_floppies ) |
| 1275 | 1270 | SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD ) |
| 1276 | 1271 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1310 | 1305 | |
| 1311 | 1306 | MCFG_UPD765A_ADD("upd765", true, true) |
| 1312 | 1307 | |
| 1313 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pcw_floppies, "3dsdd", 0, pcw_floppy_formats) | |
| 1314 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pcw_floppies, "3dsdd", 0, pcw_floppy_formats) | |
| 1308 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pcw_floppies, "3dsdd", 0, floppy_image_device::default_floppy_formats) | |
| 1309 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pcw_floppies, "3dsdd", 0, floppy_image_device::default_floppy_formats) | |
| 1315 | 1310 | |
| 1316 | 1311 | MCFG_SOFTWARE_LIST_ADD("disk_list","pcw") |
| 1317 | 1312 |
| r19107 | r19108 | |
|---|---|---|
| 534 | 534 | device.execute().set_input_line(0, HOLD_LINE); |
| 535 | 535 | } |
| 536 | 536 | |
| 537 | static const floppy_format_type elwro800jr_floppy_formats[] = { | |
| 538 | FLOPPY_MFI_FORMAT, | |
| 539 | NULL | |
| 540 | }; | |
| 541 | ||
| 542 | 537 | static SLOT_INTERFACE_START( elwro800jr_floppies ) |
| 543 | 538 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 544 | 539 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 604 | 599 | |
| 605 | 600 | MCFG_CASSETTE_ADD( CASSETTE_TAG, elwro800jr_cassette_interface ) |
| 606 | 601 | |
| 607 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", elwro800jr_floppies, "525hd", 0, elwro800jr_floppy_formats) | |
| 608 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", elwro800jr_floppies, "525hd", 0, elwro800jr_floppy_formats) | |
| 602 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", elwro800jr_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 603 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", elwro800jr_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 609 | 604 | |
| 610 | 605 | /* internal ram */ |
| 611 | 606 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 84 | 84 | virtual void machine_reset(); |
| 85 | 85 | virtual void video_start(); |
| 86 | 86 | INTERRUPT_GEN_MEMBER(pyl601_interrupt); |
| 87 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 87 | 88 | }; |
| 88 | 89 | |
| 89 | 90 | |
| r19107 | r19108 | |
| 503 | 504 | device.execute().set_input_line(0, HOLD_LINE); |
| 504 | 505 | } |
| 505 | 506 | |
| 506 | static const floppy_format_type pyl601_floppy_formats[] = { | |
| 507 | FLOPPY_PYLDIN_FORMAT, | |
| 508 | FLOPPY_MFI_FORMAT, | |
| 509 | NULL | |
| 510 | }; | |
| 507 | FLOPPY_FORMATS_MEMBER( pyl601_state::floppy_formats ) | |
| 508 | FLOPPY_PYLDIN_FORMAT | |
| 509 | FLOPPY_FORMATS_END | |
| 511 | 510 | |
| 512 | 511 | static SLOT_INTERFACE_START( pyl601_floppies ) |
| 513 | 512 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 574 | 573 | /* Devices */ |
| 575 | 574 | MCFG_MC6845_ADD("crtc", MC6845, XTAL_2MHz, pyl601_crtc6845_interface) |
| 576 | 575 | MCFG_UPD765A_ADD("upd765", true, true) |
| 577 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pyl601_floppies, "525hd", 0, pyl601_floppy_formats) | |
| 578 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pyl601_floppies, "525hd", 0, pyl601_floppy_formats) | |
| 576 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pyl601_floppies, "525hd", 0, pyl601_state::floppy_formats) | |
| 577 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pyl601_floppies, "525hd", 0, pyl601_state::floppy_formats) | |
| 579 | 578 | |
| 580 | 579 | /* internal ram */ |
| 581 | 580 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 806 | 806 | NULL |
| 807 | 807 | }; |
| 808 | 808 | |
| 809 | ||
| 810 | static const floppy_format_type amstrad_floppy_formats[] = { | |
| 811 | FLOPPY_MFI_FORMAT, | |
| 812 | NULL | |
| 813 | }; | |
| 814 | ||
| 815 | static const floppy_format_type aleste_floppy_formats[] = { | |
| 816 | FLOPPY_MFI_FORMAT, | |
| 817 | NULL | |
| 818 | }; | |
| 819 | ||
| 820 | 809 | static SLOT_INTERFACE_START( amstrad_floppies ) |
| 821 | 810 | SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD ) |
| 822 | 811 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 899 | 888 | static MACHINE_CONFIG_DERIVED( amstrad, amstrad_nofdc ) |
| 900 | 889 | MCFG_UPD765A_ADD("upd765", true, true) |
| 901 | 890 | |
| 902 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", 0, amstrad_floppy_formats) | |
| 903 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", 0, amstrad_floppy_formats) | |
| 891 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 892 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 904 | 893 | |
| 905 | 894 | MCFG_SOFTWARE_LIST_ADD("flop_list","cpc_flop") |
| 906 | 895 | MACHINE_CONFIG_END |
| r19107 | r19108 | |
| 962 | 951 | |
| 963 | 952 | MCFG_FRAGMENT_ADD(cpcplus_cartslot) |
| 964 | 953 | |
| 965 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", 0, amstrad_floppy_formats) | |
| 966 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", 0, amstrad_floppy_formats) | |
| 954 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 955 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", 0, floppy_image_device::default_floppy_formats) | |
| 967 | 956 | |
| 968 | 957 | MCFG_CPC_EXPANSION_SLOT_ADD("exp",cpc_exp_intf,cpc_exp_cards,NULL,NULL) |
| 969 | 958 | |
| r19107 | r19108 | |
| 1029 | 1018 | MCFG_DEVICE_REMOVE("upd765") |
| 1030 | 1019 | MCFG_I8272A_ADD("upd765", true) |
| 1031 | 1020 | |
| 1032 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "525hd", 0, aleste_floppy_formats) | |
| 1033 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "525hd", 0, aleste_floppy_formats) | |
| 1021 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 1022 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 1034 | 1023 | |
| 1035 | 1024 | /* internal ram */ |
| 1036 | 1025 | MCFG_RAM_MODIFY(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 447 | 447 | // floppy_format_type floppy_formats |
| 448 | 448 | //------------------------------------------------- |
| 449 | 449 | |
| 450 | const floppy_format_type super6_state::floppy_formats[] = { | |
| 451 | FLOPPY_IMD_FORMAT, | |
| 452 | FLOPPY_MFM_FORMAT, | |
| 453 | FLOPPY_MFI_FORMAT, | |
| 454 | NULL | |
| 455 | }; | |
| 456 | ||
| 457 | 450 | static SLOT_INTERFACE_START( super6_floppies ) |
| 458 | 451 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 459 | 452 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 559 | 552 | MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_24MHz/4, pio_intf) |
| 560 | 553 | MCFG_WD2793x_ADD(WD2793_TAG, 1000000) |
| 561 | 554 | MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, brg_intf) |
| 562 | MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", NULL, super6_state::floppy_formats) | |
| 563 | MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL, NULL, super6_state::floppy_formats) | |
| 555 | MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", NULL, floppy_image_device::default_floppy_formats) | |
| 556 | MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) | |
| 564 | 557 | MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 4800) |
| 565 | 558 | |
| 566 | 559 | // internal ram |
| r19107 | r19108 | |
|---|---|---|
| 477 | 477 | // upd765_interface fdc_intf |
| 478 | 478 | //------------------------------------------------- |
| 479 | 479 | |
| 480 | static const floppy_format_type sage2_floppy_formats[] = { | |
| 481 | FLOPPY_MFI_FORMAT, | |
| 482 | NULL | |
| 483 | }; | |
| 484 | ||
| 485 | 480 | static SLOT_INTERFACE_START( sage2_floppies ) |
| 486 | 481 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 487 | 482 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 596 | 591 | MCFG_I8251_ADD(I8251_1_TAG, usart1_intf) |
| 597 | 592 | MCFG_UPD765A_ADD(UPD765_TAG, false, false) |
| 598 | 593 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf) |
| 599 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", sage2_floppies, "525dd", 0, sage2_floppy_formats) | |
| 600 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", sage2_floppies, "525dd", 0, sage2_floppy_formats) | |
| 594 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", sage2_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 595 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", sage2_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 601 | 596 | MCFG_IEEE488_BUS_ADD(ieee488_intf) |
| 602 | 597 | |
| 603 | 598 | // internal ram |
| r19107 | r19108 | |
|---|---|---|
| 857 | 857 | DEVCB_CPU_INPUT_LINE("maincpu", 0) |
| 858 | 858 | }; |
| 859 | 859 | |
| 860 | static const floppy_format_type ibmpc_floppy_formats[] = { | |
| 861 | FLOPPY_PC_FORMAT, | |
| 862 | FLOPPY_MFI_FORMAT, | |
| 863 | NULL | |
| 864 | }; | |
| 860 | FLOPPY_FORMATS_MEMBER( pc_state::floppy_formats ) | |
| 861 | FLOPPY_PC_FORMAT | |
| 862 | FLOPPY_FORMATS_END | |
| 865 | 863 | |
| 866 | 864 | static SLOT_INTERFACE_START( ibmpc_floppies ) |
| 867 | 865 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
| 996 | 994 | |
| 997 | 995 | MCFG_PC_FDC_XT_ADD("fdc") |
| 998 | 996 | |
| 999 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1000 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 997 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 998 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1001 | 999 | |
| 1002 | 1000 | /* internal ram */ |
| 1003 | 1001 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1077 | 1075 | |
| 1078 | 1076 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1079 | 1077 | |
| 1080 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1081 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1078 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1079 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1082 | 1080 | |
| 1083 | 1081 | /* internal ram */ |
| 1084 | 1082 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1127 | 1125 | |
| 1128 | 1126 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1129 | 1127 | |
| 1130 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1131 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1128 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1129 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1132 | 1130 | |
| 1133 | 1131 | /* internal ram */ |
| 1134 | 1132 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1177 | 1175 | |
| 1178 | 1176 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1179 | 1177 | |
| 1180 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1181 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1178 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1179 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1182 | 1180 | |
| 1183 | 1181 | /* internal ram */ |
| 1184 | 1182 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1227 | 1225 | |
| 1228 | 1226 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1229 | 1227 | |
| 1230 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1231 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1228 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1229 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1232 | 1230 | |
| 1233 | 1231 | /* internal ram */ |
| 1234 | 1232 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1300 | 1298 | |
| 1301 | 1299 | MCFG_PC_FDC_JR_ADD("fdc") |
| 1302 | 1300 | |
| 1303 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, | |
| 1301 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1304 | 1302 | |
| 1305 | 1303 | /* cartridge */ |
| 1306 | 1304 | MCFG_CARTSLOT_ADD("cart1") |
| r19107 | r19108 | |
| 1374 | 1372 | MCFG_CASSETTE_ADD( CASSETTE_TAG, mc1502_cassette_interface ) // has no motor control |
| 1375 | 1373 | |
| 1376 | 1374 | MCFG_FD1793_ADD( "vg93", default_wd17xx_interface_2_drives ) |
| 1377 | MCFG_FLOPPY_DRIVE_ADD(FLOPPY_0, ibmpc_floppies, "525dd", 0, | |
| 1375 | MCFG_FLOPPY_DRIVE_ADD(FLOPPY_0, ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1378 | 1376 | |
| 1379 | 1377 | /* internal ram */ |
| 1380 | 1378 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1418 | 1416 | |
| 1419 | 1417 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1420 | 1418 | |
| 1421 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1422 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1419 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1420 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1423 | 1421 | |
| 1424 | 1422 | /* keyboard -- needs dump */ |
| 1425 | 1423 | MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf) |
| r19107 | r19108 | |
| 1478 | 1476 | |
| 1479 | 1477 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1480 | 1478 | |
| 1481 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1482 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1479 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1480 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1483 | 1481 | |
| 1484 | 1482 | /* internal ram */ |
| 1485 | 1483 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1532 | 1530 | |
| 1533 | 1531 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1534 | 1532 | |
| 1535 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1536 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1533 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1534 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1537 | 1535 | |
| 1538 | 1536 | /* internal ram */ |
| 1539 | 1537 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1587 | 1585 | |
| 1588 | 1586 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1589 | 1587 | |
| 1590 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1591 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1588 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1589 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1592 | 1590 | |
| 1593 | 1591 | /* internal ram */ |
| 1594 | 1592 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1641 | 1639 | |
| 1642 | 1640 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1643 | 1641 | |
| 1644 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1645 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1642 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1643 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1646 | 1644 | |
| 1647 | 1645 | /* internal ram */ |
| 1648 | 1646 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1695 | 1693 | |
| 1696 | 1694 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1697 | 1695 | |
| 1698 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1699 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1696 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1697 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1700 | 1698 | |
| 1701 | 1699 | /* internal ram */ |
| 1702 | 1700 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
| 1749 | 1747 | |
| 1750 | 1748 | MCFG_PC_FDC_XT_ADD("fdc") |
| 1751 | 1749 | |
| 1752 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1753 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1750 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1751 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", ibmpc_floppies, "525dd", 0, pc_state::floppy_formats) | |
| 1754 | 1752 | |
| 1755 | 1753 | /* internal ram */ |
| 1756 | 1754 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 608 | 608 | dma_request(0, state); |
| 609 | 609 | } |
| 610 | 610 | |
| 611 | static const floppy_format_type tandy2k_floppy_formats[] = { | |
| 612 | FLOPPY_MFI_FORMAT, | |
| 613 | NULL | |
| 614 | }; | |
| 615 | ||
| 616 | 611 | static SLOT_INTERFACE_START( tandy2k_floppies ) |
| 617 | 612 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 618 | 613 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 724 | 719 | MCFG_PIC8259_ADD(I8259A_0_TAG, pic0_intf) |
| 725 | 720 | MCFG_PIC8259_ADD(I8259A_1_TAG, pic1_intf) |
| 726 | 721 | MCFG_I8272A_ADD(I8272A_TAG, true) |
| 727 | MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":0", tandy2k_floppies, "525qd", 0, tandy2k_floppy_formats) | |
| 728 | MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":1", tandy2k_floppies, "525qd", 0, tandy2k_floppy_formats) | |
| 722 | MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":0", tandy2k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 723 | MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":1", tandy2k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) | |
| 729 | 724 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| 730 | 725 | MCFG_TANDY2K_KEYBOARD_ADD(kb_intf) |
| 731 | 726 |
| r19107 | r19108 | |
|---|---|---|
| 62 | 62 | DECLARE_READ8_MEMBER(nanos_port_a_r); |
| 63 | 63 | DECLARE_READ8_MEMBER(nanos_port_b_r); |
| 64 | 64 | DECLARE_WRITE8_MEMBER(nanos_port_b_w); |
| 65 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 65 | 66 | }; |
| 66 | 67 | |
| 67 | 68 | |
| r19107 | r19108 | |
| 463 | 464 | DEVCB_NULL |
| 464 | 465 | }; |
| 465 | 466 | |
| 466 | static const floppy_format_type nanos_floppy_formats[] = { | |
| 467 | FLOPPY_NANOS_FORMAT, | |
| 468 | FLOPPY_MFI_FORMAT, | |
| 469 | NULL | |
| 470 | }; | |
| 467 | FLOPPY_FORMATS_MEMBER( nanos_state::floppy_formats ) | |
| 468 | FLOPPY_NANOS_FORMAT | |
| 469 | FLOPPY_FORMATS_END | |
| 471 | 470 | |
| 472 | 471 | static SLOT_INTERFACE_START( nanos_floppies ) |
| 473 | 472 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 519 | 518 | MCFG_Z80PIO_ADD( "z80pio", XTAL_4MHz, nanos_z80pio_intf ) |
| 520 | 519 | /* UPD765 */ |
| 521 | 520 | MCFG_UPD765A_ADD("upd765", false, true) |
| 522 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", nanos_floppies, "525hd", 0, nanos_floppy_formats) | |
| 521 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", nanos_floppies, "525hd", 0, nanos_state::floppy_formats) | |
| 523 | 522 | |
| 524 | 523 | /* internal ram */ |
| 525 | 524 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 2449 | 2449 | * |
| 2450 | 2450 | ****************************************/ |
| 2451 | 2451 | |
| 2452 | static const floppy_format_type pc9801_floppy_formats[] = { | |
| 2453 | FLOPPY_D88_FORMAT, | |
| 2454 | FLOPPY_MFI_FORMAT, | |
| 2455 | NULL | |
| 2456 | }; | |
| 2457 | ||
| 2458 | 2452 | static SLOT_INTERFACE_START( pc9801_floppies ) |
| 2459 | 2453 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 2460 | 2454 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 2680 | 2674 | |
| 2681 | 2675 | MCFG_UPD765A_ADD("upd765_2hd", false, true) |
| 2682 | 2676 | MCFG_UPD765A_ADD("upd765_2dd", false, true) |
| 2683 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2684 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2685 | MCFG_FLOPPY_DRIVE_ADD("upd765_2dd:0", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2686 | MCFG_FLOPPY_DRIVE_ADD("upd765_2dd:1", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2677 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2678 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2679 | MCFG_FLOPPY_DRIVE_ADD("upd765_2dd:0", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2680 | MCFG_FLOPPY_DRIVE_ADD("upd765_2dd:1", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2687 | 2681 | |
| 2688 | 2682 | MCFG_SOFTWARE_LIST_ADD("disk_list","pc98") |
| 2689 | 2683 | |
| r19107 | r19108 | |
| 2747 | 2741 | |
| 2748 | 2742 | MCFG_UPD765A_ADD("upd765_2hd", false, true) |
| 2749 | 2743 | //"upd765_2dd" |
| 2750 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2751 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2744 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2745 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2752 | 2746 | |
| 2753 | 2747 | MCFG_RAM_ADD(RAM_TAG) |
| 2754 | 2748 | MCFG_RAM_DEFAULT_SIZE("640K") |
| r19107 | r19108 | |
| 2808 | 2802 | |
| 2809 | 2803 | MCFG_UPD765A_ADD("upd765_2hd", false, true) |
| 2810 | 2804 | //"upd765_2dd" |
| 2811 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2812 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, pc9801_floppy_formats) | |
| 2805 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:0", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2806 | MCFG_FLOPPY_DRIVE_ADD("upd765_2hd:1", pc9801_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 2813 | 2807 | |
| 2814 | 2808 | MCFG_RAM_ADD(RAM_TAG) |
| 2815 | 2809 | MCFG_RAM_DEFAULT_SIZE("640K") |
| r19107 | r19108 | |
|---|---|---|
| 67 | 67 | virtual void machine_reset(); |
| 68 | 68 | virtual void video_start(); |
| 69 | 69 | virtual void palette_init(); |
| 70 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 70 | 71 | }; |
| 71 | 72 | |
| 72 | 73 | /* TODO */ |
| r19107 | r19108 | |
| 520 | 521 | AM_RANGE(0x00000, 0x1ffff) AM_RAM AM_SHARE("video_ram") |
| 521 | 522 | ADDRESS_MAP_END |
| 522 | 523 | |
| 523 | static const floppy_format_type a5105_floppy_formats[] = { | |
| 524 | FLOPPY_MFI_FORMAT, | |
| 525 | FLOPPY_A5105_FORMAT, | |
| 526 | NULL | |
| 527 | }; | |
| 524 | FLOPPY_FORMATS_MEMBER( a5105_state::floppy_formats ) | |
| 525 | FLOPPY_A5105_FORMAT | |
| 526 | FLOPPY_FORMATS_END | |
| 528 | 527 | |
| 529 | 528 | static SLOT_INTERFACE_START( a5105_floppies ) |
| 530 | 529 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
| 588 | 587 | MCFG_CASSETTE_ADD( CASSETTE_TAG, default_cassette_interface ) |
| 589 | 588 | |
| 590 | 589 | MCFG_UPD765A_ADD("upd765a", false, true) |
| 591 | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", a5105_floppies, "525dd", 0, a5105_floppy_formats) | |
| 592 | MCFG_FLOPPY_DRIVE_ADD("upd765a:1", a5105_floppies, "525dd", 0, a5105_floppy_formats) | |
| 593 | MCFG_FLOPPY_DRIVE_ADD("upd765a:2", a5105_floppies, "525dd", 0, a5105_floppy_formats) | |
| 594 | MCFG_FLOPPY_DRIVE_ADD("upd765a:3", a5105_floppies, "525dd", 0, a5105_floppy_formats) | |
| 590 | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) | |
| 591 | MCFG_FLOPPY_DRIVE_ADD("upd765a:1", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) | |
| 592 | MCFG_FLOPPY_DRIVE_ADD("upd765a:2", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) | |
| 593 | MCFG_FLOPPY_DRIVE_ADD("upd765a:3", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) | |
| 595 | 594 | |
| 596 | 595 | /* internal ram */ |
| 597 | 596 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 374 | 374 | } |
| 375 | 375 | } |
| 376 | 376 | |
| 377 | static const floppy_format_type p8k_floppy_formats[] = { | |
| 378 | FLOPPY_MFI_FORMAT, | |
| 379 | NULL | |
| 380 | }; | |
| 381 | ||
| 382 | 377 | static SLOT_INTERFACE_START( p8k_floppies ) |
| 383 | 378 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 384 | 379 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 731 | 726 | MCFG_Z80PIO_ADD("z80pio_1", 1229000, p8k_pio_1_intf) |
| 732 | 727 | MCFG_Z80PIO_ADD("z80pio_2", 1229000, p8k_pio_2_intf) |
| 733 | 728 | MCFG_I8272A_ADD("i8272", true) |
| 734 | MCFG_FLOPPY_DRIVE_ADD("i8272:0", p8k_floppies, "525hd", 0, p8k_floppy_formats) | |
| 735 | MCFG_FLOPPY_DRIVE_ADD("i8272:1", p8k_floppies, "525hd", 0, p8k_floppy_formats) | |
| 729 | MCFG_FLOPPY_DRIVE_ADD("i8272:0", p8k_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 730 | MCFG_FLOPPY_DRIVE_ADD("i8272:1", p8k_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 736 | 731 | |
| 737 | 732 | /* sound hardware */ |
| 738 | 733 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r19107 | r19108 | |
|---|---|---|
| 143 | 143 | |
| 144 | 144 | void fdc_irq(bool state); |
| 145 | 145 | void fdc_drq(bool state); |
| 146 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 146 | 147 | }; |
| 147 | 148 | |
| 148 | 149 | |
| r19107 | r19108 | |
| 1731 | 1732 | { 0, 0, m_fdc_dma_w, 0 } |
| 1732 | 1733 | }; |
| 1733 | 1734 | |
| 1734 | static const floppy_format_type pc88va_floppy_formats[] = { | |
| 1735 | FLOPPY_XDF_FORMAT, | |
| 1736 | FLOPPY_MFI_FORMAT, | |
| 1737 | FLOPPY_D88_FORMAT, | |
| 1738 | NULL | |
| 1739 | }; | |
| 1735 | FLOPPY_FORMATS_MEMBER( pc88va_state::floppy_formats ) | |
| 1736 | FLOPPY_XDF_FORMAT | |
| 1737 | FLOPPY_FORMATS_END | |
| 1740 | 1738 | |
| 1741 | 1739 | static SLOT_INTERFACE_START( pc88va_floppies ) |
| 1742 | 1740 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| r19107 | r19108 | |
| 1778 | 1776 | MCFG_UPD71071_ADD("dmac",pc88va_dma_config) |
| 1779 | 1777 | |
| 1780 | 1778 | MCFG_UPD765A_ADD("upd765", false, true) |
| 1781 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc88va_floppies, "525hd", 0, pc88va_floppy_formats) | |
| 1782 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc88va_floppies, "525hd", 0, pc88va_floppy_formats) | |
| 1779 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc88va_floppies, "525hd", 0, pc88va_state::floppy_formats) | |
| 1780 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc88va_floppies, "525hd", 0, pc88va_state::floppy_formats) | |
| 1783 | 1781 | MCFG_SOFTWARE_LIST_ADD("disk_list","pc88va") |
| 1784 | 1782 | |
| 1785 | 1783 | MCFG_PIT8253_ADD("pit8253",pc88va_pit8253_config) |
| r19107 | r19108 | |
|---|---|---|
| 1092 | 1092 | DEVCB_DEVICE_LINE_MEMBER(I8237A5_TAG, am9517a_device, dreq3_w) |
| 1093 | 1093 | }; |
| 1094 | 1094 | |
| 1095 | static const floppy_format_type ibmpc_floppy_formats[] = { | |
| 1096 | FLOPPY_PC_FORMAT, | |
| 1097 | FLOPPY_MFI_FORMAT, | |
| 1098 | NULL | |
| 1099 | }; | |
| 1095 | FLOPPY_FORMATS_MEMBER( pc1512_state::floppy_formats ) | |
| 1096 | FLOPPY_PC_FORMAT | |
| 1097 | FLOPPY_FORMATS_END | |
| 1100 | 1098 | |
| 1101 | 1099 | static SLOT_INTERFACE_START( ibmpc_floppies ) |
| 1102 | 1100 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| r19107 | r19108 | |
| 1267 | 1265 | MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG) |
| 1268 | 1266 | MCFG_INS8250_ADD(INS8250_TAG, uart_intf, XTAL_1_8432MHz) |
| 1269 | 1267 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf) |
| 1270 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1271 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1268 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", ibmpc_floppies, "525dd", 0, pc1512_state::floppy_formats) | |
| 1269 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", ibmpc_floppies, "525dd", 0, pc1512_state::floppy_formats) | |
| 1272 | 1270 | |
| 1273 | 1271 | // ISA8 bus |
| 1274 | 1272 | MCFG_ISA8_BUS_ADD(ISA_BUS_TAG, I8086_TAG, isabus_intf) |
| r19107 | r19108 | |
| 1312 | 1310 | MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG) |
| 1313 | 1311 | MCFG_INS8250_ADD(INS8250_TAG, uart_intf, XTAL_1_8432MHz) |
| 1314 | 1312 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf) |
| 1315 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1316 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", ibmpc_floppies, "525dd", 0, ibmpc_floppy_formats) | |
| 1313 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", ibmpc_floppies, "525dd", 0, pc1512_state::floppy_formats) | |
| 1314 | MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", ibmpc_floppies, "525dd", 0, pc1512_state::floppy_formats) | |
| 1317 | 1315 | |
| 1318 | 1316 | // ISA8 bus |
| 1319 | 1317 | MCFG_ISA8_BUS_ADD(ISA_BUS_TAG, I8086_TAG, isabus_intf) |
| r19107 | r19108 | |
|---|---|---|
| 971 | 971 | } |
| 972 | 972 | }; |
| 973 | 973 | |
| 974 | static const floppy_format_type pcw16_floppy_formats[] = { | |
| 975 | FLOPPY_PC_FORMAT, | |
| 976 | FLOPPY_MFI_FORMAT, | |
| 977 | NULL | |
| 978 | }; | |
| 974 | FLOPPY_FORMATS_MEMBER( pcw16_state::floppy_formats ) | |
| 975 | FLOPPY_PC_FORMAT | |
| 976 | FLOPPY_FORMATS_END | |
| 979 | 977 | |
| 980 | 978 | static SLOT_INTERFACE_START( pcw16_floppies ) |
| 981 | 979 | SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) |
| r19107 | r19108 | |
| 1097 | 1095 | /* printer */ |
| 1098 | 1096 | MCFG_PC_LPT_ADD("lpt", pcw16_lpt_config) |
| 1099 | 1097 | MCFG_PC_FDC_SUPERIO_ADD("fdc") |
| 1100 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcw16_floppies, "35hd", 0, pcw16_floppy_formats) | |
| 1101 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pcw16_floppies, "35hd", 0, pcw16_floppy_formats) | |
| 1098 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcw16_floppies, "35hd", 0, pcw16_state::floppy_formats) | |
| 1099 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pcw16_floppies, "35hd", 0, pcw16_state::floppy_formats) | |
| 1102 | 1100 | |
| 1103 | 1101 | MCFG_SOFTWARE_LIST_ADD("disk_list","pcw16") |
| 1104 | 1102 |
| r19107 | r19108 | |
|---|---|---|
| 46 | 46 | m_p_ram(*this, "p_ram"){ } |
| 47 | 47 | |
| 48 | 48 | |
| 49 | static const floppy_format_type floppy_formats[]; | |
| 50 | ||
| 51 | 49 | required_device<cpu_device> m_maincpu; |
| 52 | 50 | required_device<generic_terminal_device> m_terminal; |
| 53 | 51 | required_device<device_t> m_duart; |
| r19107 | r19108 | |
| 59 | 57 | }; |
| 60 | 58 | |
| 61 | 59 | |
| 62 | const floppy_format_type ht68k_state::floppy_formats[] = { | |
| 63 | FLOPPY_MFM_FORMAT, FLOPPY_MFI_FORMAT, | |
| 64 | NULL | |
| 65 | }; | |
| 66 | ||
| 67 | ||
| 68 | 60 | static ADDRESS_MAP_START(ht68k_mem, AS_PROGRAM, 16, ht68k_state) |
| 69 | 61 | ADDRESS_MAP_UNMAP_HIGH |
| 70 | 62 | AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_SHARE("p_ram") // 512 KB RAM / ROM at boot |
| r19107 | r19108 | |
| 159 | 151 | |
| 160 | 152 | MCFG_WD1770x_ADD("wd1770", XTAL_8MHz ) |
| 161 | 153 | |
| 162 | MCFG_FLOPPY_DRIVE_ADD("wd1770:0", ht68k_floppies, "525dd", 0, ht68k_state::floppy_formats) | |
| 163 | MCFG_FLOPPY_DRIVE_ADD("wd1770:1", ht68k_floppies, "525dd", 0, ht68k_state::floppy_formats) | |
| 164 | MCFG_FLOPPY_DRIVE_ADD("wd1770:2", ht68k_floppies, "525dd", 0, ht68k_state::floppy_formats) | |
| 165 | MCFG_FLOPPY_DRIVE_ADD("wd1770:3", ht68k_floppies, "525dd", 0, ht68k_state::floppy_formats) | |
| 154 | MCFG_FLOPPY_DRIVE_ADD("wd1770:0", ht68k_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 155 | MCFG_FLOPPY_DRIVE_ADD("wd1770:1", ht68k_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 156 | MCFG_FLOPPY_DRIVE_ADD("wd1770:2", ht68k_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 157 | MCFG_FLOPPY_DRIVE_ADD("wd1770:3", ht68k_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 166 | 158 | MACHINE_CONFIG_END |
| 167 | 159 | |
| 168 | 160 | /* ROM definition */ |
| r19107 | r19108 | |
|---|---|---|
| 969 | 969 | floppy_interface sf7000_floppy_interface |
| 970 | 970 | -------------------------------------------------*/ |
| 971 | 971 | |
| 972 | static const floppy_format_type sf7000_floppy_formats[] = { | |
| 973 | FLOPPY_MFI_FORMAT, | |
| 974 | NULL | |
| 975 | }; | |
| 976 | ||
| 977 | 972 | static SLOT_INTERFACE_START( sf7000_floppies ) |
| 978 | 973 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 979 | 974 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1193 | 1188 | MCFG_I8255_ADD(UPD9255_1_TAG, sf7000_ppi_intf) |
| 1194 | 1189 | MCFG_I8251_ADD(UPD8251_TAG, default_i8251_interface) |
| 1195 | 1190 | MCFG_UPD765A_ADD(UPD765_TAG, true, true) |
| 1196 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", sf7000_floppies, "525hd", 0, | |
| 1191 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", sf7000_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 1197 | 1192 | // MCFG_PRINTER_ADD("sp400") /* serial printer */ |
| 1198 | 1193 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| 1199 | 1194 | MCFG_CASSETTE_ADD(CASSETTE_TAG, sc3000_cassette_interface) |
| r19107 | r19108 | |
|---|---|---|
| 683 | 683 | // upd765_interface fdc_intf |
| 684 | 684 | //------------------------------------------------- |
| 685 | 685 | |
| 686 | static const floppy_format_type mm1_floppy_formats[] = { | |
| 687 | FLOPPY_MM1_FORMAT, | |
| 688 | FLOPPY_MFI_FORMAT, | |
| 689 | NULL | |
| 690 | }; | |
| 691 | ||
| 692 | static const floppy_format_type mm2_floppy_formats[] = { | |
| 693 | FLOPPY_MM2_FORMAT, | |
| 694 | FLOPPY_MFI_FORMAT, | |
| 695 | NULL | |
| 696 | }; | |
| 697 | ||
| 686 | FLOPPY_FORMATS_MEMBER( mm1_state::floppy_formats ) | |
| 687 | FLOPPY_MM1_FORMAT | |
| 688 | FLOPPY_FORMATS_END | |
| 689 | /* | |
| 690 | FLOPPY_FORMATS_MEMBER( mm2_state::floppy_formats ) | |
| 691 | FLOPPY_MM2_FORMAT | |
| 692 | FLOPPY_FORMATS_END | |
| 693 | */ | |
| 698 | 694 | static SLOT_INTERFACE_START( mm1_floppies ) |
| 699 | 695 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 700 | 696 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 786 | 782 | MCFG_UPD765A_ADD(UPD765_TAG, /* XTAL_16MHz/2/2 */ true, true) |
| 787 | 783 | MCFG_UPD7201_ADD(UPD7201_TAG, XTAL_6_144MHz/2, mpsc_intf) |
| 788 | 784 | |
| 789 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", mm1_floppies, "525qd", 0, mm1_floppy_formats) | |
| 790 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", mm1_floppies, "525qd", 0, mm1_floppy_formats) | |
| 785 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", mm1_floppies, "525qd", 0, mm1_state::floppy_formats) | |
| 786 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", mm1_floppies, "525qd", 0, mm1_state::floppy_formats) | |
| 791 | 787 | |
| 792 | 788 | // internal ram |
| 793 | 789 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 42 | 42 | ROM |
| 43 | 43 | }; |
| 44 | 44 | |
| 45 | #define HAS_KB_OF_RAM(_kb) \ | |
| 46 | (m_ram->size() >= (_kb * 1024)) | |
| 45 | 47 | |
| 46 | 48 | |
| 47 | 49 | //************************************************************************** |
| r19107 | r19108 | |
| 70 | 72 | case ROM: rom = 0; break; |
| 71 | 73 | } |
| 72 | 74 | |
| 73 | if ( | |
| 75 | if (offset < 0x8000) | |
| 74 | 76 | { |
| 75 | data = memregion(Z80_TAG)->base()[offset & 0x3fff]; | |
| 76 | } | |
| 77 | if (!rom) | |
| 78 | { | |
| 79 | data = memregion(Z80_TAG)->base()[offset & 0x3fff]; | |
| 80 | } | |
| 77 | 81 | |
| 78 | if (!vram) | |
| 79 | { | |
| 80 | data = m_video_ram[offset & 0x3fff]; | |
| 81 | } | |
| 82 | if (!vram) | |
| 83 | { | |
| 84 | data = m_video_ram[offset & 0x3fff]; | |
| 85 | } | |
| 82 | 86 | |
| 83 | if (!ram1) | |
| 84 | { | |
| 85 | data = m_ram->pointer()[offset]; | |
| 86 | } | |
| 87 | if (!ram1) | |
| 88 | { | |
| 89 | data = m_ram->pointer()[offset]; | |
| 90 | } | |
| 87 | 91 | |
| 88 | if (!ram2 && (m_ram->size() >= 96 * 1024)) | |
| 89 | { | |
| 90 | data = m_ram->pointer()[0x10000 | offset]; | |
| 91 | } | |
| 92 | if (!ram2 && HAS_KB_OF_RAM(96)) | |
| 93 | { | |
| 94 | data = m_ram->pointer()[0x10000 | offset]; | |
| 95 | } | |
| 92 | 96 | |
| 93 | if (!ram3 && (m_ram->size() >= 128 * 1024)) | |
| 94 | { | |
| 95 | data = m_ram->pointer()[0x18000 | offset]; | |
| 96 | } | |
| 97 | if (!ram3 && HAS_KB_OF_RAM(128)) | |
| 98 | { | |
| 99 | data = m_ram->pointer()[0x18000 | offset]; | |
| 100 | } | |
| 97 | 101 | |
| 98 | if (!ram4 && (m_ram->size() >= 160 * 1024)) | |
| 99 | { | |
| 100 | data = m_ram->pointer()[0x20000 | offset]; | |
| 101 | } | |
| 102 | if (!ram4 && HAS_KB_OF_RAM(160)) | |
| 103 | { | |
| 104 | data = m_ram->pointer()[0x20000 | offset]; | |
| 105 | } | |
| 102 | 106 | |
| 103 | if (!ram5 && (m_ram->size() >= 192 * 1024)) | |
| 104 | { | |
| 105 | data = m_ram->pointer()[0x28000 | offset]; | |
| 107 | if (!ram5 && HAS_KB_OF_RAM(192)) | |
| 108 | { | |
| 109 | data = m_ram->pointer()[0x28000 | offset]; | |
| 110 | } | |
| 111 | ||
| 112 | if (!ram6 && HAS_KB_OF_RAM(224)) | |
| 113 | { | |
| 114 | data = m_ram->pointer()[0x30000 | offset]; | |
| 115 | } | |
| 106 | 116 | } |
| 107 | ||
| 108 | if (!ram6 && (m_ram->size() >= 224 * 1024)) | |
| 117 | else | |
| 109 | 118 | { |
| 110 | data = m_ram->pointer()[ | |
| 119 | data = m_ram->pointer()[offset]; | |
| 111 | 120 | } |
| 112 | 121 | |
| 113 | 122 | return m_exp->cd_r(space, offset, data, ram2, ram3, ram4, ram5, ram6); |
| r19107 | r19108 | |
| 133 | 142 | case RAM6: ram6 = 0; break; |
| 134 | 143 | } |
| 135 | 144 | |
| 136 | if ( | |
| 145 | if (offset < 0x8000) | |
| 137 | 146 | { |
| 138 | m_video_ram[offset & 0x3fff] = data; | |
| 139 | } | |
| 147 | if (!vram) | |
| 148 | { | |
| 149 | m_video_ram[offset & 0x3fff] = data; | |
| 150 | } | |
| 140 | 151 | |
| 141 | if (!ram1) | |
| 142 | { | |
| 143 | m_ram->pointer()[offset] = data; | |
| 144 | } | |
| 152 | if (!ram1) | |
| 153 | { | |
| 154 | m_ram->pointer()[offset] = data; | |
| 155 | } | |
| 145 | 156 | |
| 146 | if (!ram2 && (m_ram->size() >= 96 * 1024)) | |
| 147 | { | |
| 148 | m_ram->pointer()[0x10000 | offset] = data; | |
| 149 | } | |
| 157 | if (!ram2 && HAS_KB_OF_RAM(96)) | |
| 158 | { | |
| 159 | m_ram->pointer()[0x10000 | offset] = data; | |
| 160 | } | |
| 150 | 161 | |
| 151 | if (!ram3 && (m_ram->size() >= 128 * 1024)) | |
| 152 | { | |
| 153 | m_ram->pointer()[0x18000 | offset] = data; | |
| 154 | } | |
| 162 | if (!ram3 && HAS_KB_OF_RAM(128)) | |
| 163 | { | |
| 164 | m_ram->pointer()[0x18000 | offset] = data; | |
| 165 | } | |
| 155 | 166 | |
| 156 | if (!ram4 && (m_ram->size() >= 160 * 1024)) | |
| 157 | { | |
| 158 | m_ram->pointer()[0x20000 | offset] = data; | |
| 159 | } | |
| 167 | if (!ram4 && HAS_KB_OF_RAM(160)) | |
| 168 | { | |
| 169 | m_ram->pointer()[0x20000 | offset] = data; | |
| 170 | } | |
| 160 | 171 | |
| 161 | if (!ram5 && (m_ram->size() >= 192 * 1024)) | |
| 162 | { | |
| 163 | m_ram->pointer()[0x28000 | offset] = data; | |
| 172 | if (!ram5 && HAS_KB_OF_RAM(192)) | |
| 173 | { | |
| 174 | m_ram->pointer()[0x28000 | offset] = data; | |
| 175 | } | |
| 176 | ||
| 177 | if (!ram6 && HAS_KB_OF_RAM(224)) | |
| 178 | { | |
| 179 | m_ram->pointer()[0x30000 | offset] = data; | |
| 180 | } | |
| 164 | 181 | } |
| 165 | ||
| 166 | if (!ram6 && (m_ram->size() >= 224 * 1024)) | |
| 182 | else | |
| 167 | 183 | { |
| 168 | m_ram->pointer()[ | |
| 184 | m_ram->pointer()[offset] = data; | |
| 169 | 185 | } |
| 170 | 186 | |
| 171 | 187 | m_exp->cd_w(space, offset, data, ram2, ram3, ram4, ram5, ram6); |
| r19107 | r19108 | |
| 183 | 199 | |
| 184 | 200 | static ADDRESS_MAP_START( bw2_mem, AS_PROGRAM, 8, bw2_state ) |
| 185 | 201 | ADDRESS_MAP_UNMAP_HIGH |
| 186 | AM_RANGE(0x0000, 0x7fff) AM_READWRITE(read, write) | |
| 187 | AM_RANGE(0x8000, 0xffff) AM_RAM | |
| 202 | AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write) | |
| 188 | 203 | ADDRESS_MAP_END |
| 189 | 204 | |
| 190 | 205 | |
| r19107 | r19108 | |
| 207 | 222 | ADDRESS_MAP_END |
| 208 | 223 | |
| 209 | 224 | |
| 225 | //------------------------------------------------- | |
| 226 | // ADDRESS_MAP( lcdc_map ) | |
| 227 | //------------------------------------------------- | |
| 210 | 228 | |
| 229 | static ADDRESS_MAP_START( lcdc_map, AS_0, 8, bw2_state ) | |
| 230 | ADDRESS_MAP_GLOBAL_MASK(0x3fff) | |
| 231 | AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("videoram") | |
| 232 | ADDRESS_MAP_END | |
| 233 | ||
| 234 | ||
| 235 | ||
| 211 | 236 | //************************************************************************** |
| 212 | 237 | // INPUT PORTS |
| 213 | 238 | //************************************************************************** |
| r19107 | r19108 | |
| 512 | 537 | |
| 513 | 538 | |
| 514 | 539 | //------------------------------------------------- |
| 515 | // MSM6255_INTERFACE( lcdc_intf ) | |
| 516 | //------------------------------------------------- | |
| 517 | ||
| 518 | void bw2_state::palette_init() | |
| 519 | { | |
| 520 | palette_set_color_rgb(machine(), 0, 0xa5, 0xad, 0xa5); | |
| 521 | palette_set_color_rgb(machine(), 1, 0x31, 0x39, 0x10); | |
| 522 | } | |
| 523 | ||
| 524 | static MSM6255_CHAR_RAM_READ( bw2_charram_r ) | |
| 525 | { | |
| 526 | bw2_state *state = device->machine().driver_data<bw2_state>(); | |
| 527 | ||
| 528 | return state->m_video_ram[ma & 0x3fff]; | |
| 529 | } | |
| 530 | ||
| 531 | static MSM6255_INTERFACE( lcdc_intf ) | |
| 532 | { | |
| 533 | SCREEN_TAG, | |
| 534 | 0, | |
| 535 | bw2_charram_r, | |
| 536 | }; | |
| 537 | ||
| 538 | ||
| 539 | //------------------------------------------------- | |
| 540 | 540 | // floppy_format_type floppy_formats |
| 541 | 541 | //------------------------------------------------- |
| 542 | 542 | |
| 543 | 543 | void bw2_state::fdc_intrq_w(bool state) |
| 544 | 544 | { |
| 545 | logerror("intrq %u\n", state?1:0); | |
| 546 | 545 | m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE); |
| 547 | 546 | } |
| 548 | 547 | |
| 549 | 548 | void bw2_state::fdc_drq_w(bool state) |
| 550 | 549 | { |
| 551 | logerror("drq %u\n", state?1:0); | |
| 552 | 550 | if (state) |
| 553 | 551 | { |
| 554 | 552 | if (m_maincpu->state_int(Z80_HALT)) |
| r19107 | r19108 | |
| 562 | 560 | } |
| 563 | 561 | } |
| 564 | 562 | |
| 565 | const floppy_format_type bw2_state::floppy_formats[] = { | |
| 566 | FLOPPY_BW2_FORMAT, | |
| 567 | FLOPPY_IMD_FORMAT, | |
| 568 | FLOPPY_MFM_FORMAT, | |
| 569 | FLOPPY_MFI_FORMAT, | |
| 570 | NULL | |
| 571 | }; | |
| 563 | FLOPPY_FORMATS_MEMBER( bw2_state::floppy_formats ) | |
| 564 | FLOPPY_BW2_FORMAT | |
| 565 | FLOPPY_FORMATS_END | |
| 572 | 566 | |
| 573 | 567 | static SLOT_INTERFACE_START( bw2_floppies ) |
| 574 | 568 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // Teac FD-35 |
| r19107 | r19108 | |
| 598 | 592 | //************************************************************************** |
| 599 | 593 | |
| 600 | 594 | //------------------------------------------------- |
| 595 | // PALETTE_INIT( bw2 ) | |
| 596 | //------------------------------------------------- | |
| 597 | ||
| 598 | void bw2_state::palette_init() | |
| 599 | { | |
| 600 | palette_set_color_rgb(machine(), 0, 0xa5, 0xad, 0xa5); | |
| 601 | palette_set_color_rgb(machine(), 1, 0x31, 0x39, 0x10); | |
| 602 | } | |
| 603 | ||
| 604 | ||
| 605 | //------------------------------------------------- | |
| 601 | 606 | // MACHINE_START( bw2 ) |
| 602 | 607 | //------------------------------------------------- |
| 603 | 608 | |
| 604 | 609 | void bw2_state::machine_start() |
| 605 | 610 | { |
| 606 | // allocate memory | |
| 607 | m_video_ram.allocate(0x4000); | |
| 608 | ||
| 609 | 611 | // floppy callbacks |
| 610 | 612 | m_fdc->setup_intrq_cb(wd2797_t::line_cb(FUNC(bw2_state::fdc_intrq_w), this)); |
| 611 | 613 | m_fdc->setup_drq_cb(wd2797_t::line_cb(FUNC(bw2_state::fdc_drq_w), this)); |
| r19107 | r19108 | |
| 645 | 647 | // devices |
| 646 | 648 | MCFG_PIT8253_ADD(I8253_TAG, pit_intf) |
| 647 | 649 | MCFG_I8255A_ADD(I8255A_TAG, ppi_intf) |
| 648 | MCFG_MSM6255_ADD(MSM6255_TAG, XTAL_16MHz, lcdc_ | |
| 650 | MCFG_MSM6255_ADD(MSM6255_TAG, XTAL_16MHz, 0, SCREEN_TAG, lcdc_map) | |
| 649 | 651 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |
| 650 | 652 | MCFG_I8251_ADD(I8251_TAG, default_i8251_interface) |
| 651 | 653 | MCFG_WD2797x_ADD(WD2797_TAG, XTAL_16MHz/16) |
| r19107 | r19108 | |
|---|---|---|
| 90 | 90 | |
| 91 | 91 | int last_sndram_bank; |
| 92 | 92 | |
| 93 | | |
| 93 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 94 | 94 | |
| 95 | 95 | void fdc_intrq_w(bool state); |
| 96 | 96 | DECLARE_DRIVER_INIT(mirage); |
| r19107 | r19108 | |
| 106 | 106 | DECLARE_READ8_MEMBER(mirage_via_read_cb2); |
| 107 | 107 | }; |
| 108 | 108 | |
| 109 | const floppy_format_type mirage_state::floppy_formats[] = { | |
| 110 | FLOPPY_ESQ8IMG_FORMAT, FLOPPY_IPF_FORMAT, FLOPPY_MFI_FORMAT, FLOPPY_DFI_FORMAT, | |
| 111 | NULL | |
| 112 | }; | |
| 109 | FLOPPY_FORMATS_MEMBER( mirage_state::floppy_formats ) | |
| 110 | FLOPPY_ESQ8IMG_FORMAT | |
| 111 | FLOPPY_FORMATS_END | |
| 113 | 112 | |
| 114 | 113 | static SLOT_INTERFACE_START( ensoniq_floppies ) |
| 115 | 114 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| r19107 | r19108 | |
|---|---|---|
| 317 | 317 | FDD |
| 318 | 318 | */ |
| 319 | 319 | |
| 320 | static const floppy_format_type qx10_floppy_formats[] = { | |
| 321 | FLOPPY_D88_FORMAT, | |
| 322 | FLOPPY_IMD_FORMAT, | |
| 323 | FLOPPY_MFI_FORMAT, | |
| 324 | NULL // TODO: TD0 format | |
| 325 | }; | |
| 326 | ||
| 327 | 320 | static SLOT_INTERFACE_START( qx10_floppies ) |
| 328 | 321 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 329 | 322 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1051 | 1044 | MCFG_UPD7220_ADD("upd7220", MAIN_CLK/4, hgdc_intf, upd7220_map) |
| 1052 | 1045 | MCFG_MC146818_ADD( "rtc", MC146818_STANDARD ) |
| 1053 | 1046 | MCFG_UPD765A_ADD("upd765", true, true) |
| 1054 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", qx10_floppies, "525dd", 0, qx10_floppy_formats) | |
| 1055 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", qx10_floppies, "525dd", 0, qx10_floppy_formats) | |
| 1047 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", qx10_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1048 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", qx10_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1056 | 1049 | |
| 1057 | 1050 | /* internal ram */ |
| 1058 | 1051 | MCFG_RAM_ADD(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 516 | 516 | |
| 517 | 517 | MACHINE_CONFIG_END |
| 518 | 518 | |
| 519 | static const floppy_format_type hector_floppy_formats[] = { | |
| 520 | FLOPPY_MFI_FORMAT, | |
| 521 | NULL | |
| 522 | }; | |
| 523 | ||
| 524 | 519 | static SLOT_INTERFACE_START( hector_floppies ) |
| 525 | 520 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 526 | 521 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 539 | 534 | MCFG_CPU_PROGRAM_MAP(hecdisc2_mem) |
| 540 | 535 | MCFG_CPU_IO_MAP(hecdisc2_io) |
| 541 | 536 | MCFG_UPD765A_ADD("upd765", false, true) |
| 542 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 543 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 537 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 538 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 544 | 539 | MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) |
| 545 | 540 | MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) |
| 546 | 541 | |
| r19107 | r19108 | |
| 591 | 586 | MCFG_CPU_PROGRAM_MAP(hecdisc2_mem) |
| 592 | 587 | MCFG_CPU_IO_MAP(hecdisc2_io) |
| 593 | 588 | MCFG_UPD765A_ADD("upd765", false, true) |
| 594 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 595 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 589 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 590 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 596 | 591 | |
| 597 | 592 | /* video hardware */ |
| 598 | 593 | MCFG_SCREEN_ADD("screen", RASTER) |
| r19107 | r19108 | |
| 690 | 685 | MCFG_CPU_PROGRAM_MAP(hecdisc2_mem) |
| 691 | 686 | MCFG_CPU_IO_MAP(hecdisc2_io) |
| 692 | 687 | MCFG_UPD765A_ADD("upd765", false, true) |
| 693 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 694 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, hector_floppy_formats) | |
| 688 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 689 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", hector_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) | |
| 695 | 690 | |
| 696 | 691 | /* video hardware */ |
| 697 | 692 | MCFG_SCREEN_ADD("screen", RASTER) |
| r19107 | r19108 | |
|---|---|---|
| 18 | 18 | #include "machine/ins8250.h" |
| 19 | 19 | #include "machine/pic8259.h" |
| 20 | 20 | #include "machine/mc146818.h" |
| 21 | #include "machine/upd765.h" | |
| 22 | 21 | #include "machine/pci.h" |
| 23 | 22 | #include "machine/8237dma.h" |
| 24 | 23 | #include "machine/pckeybrd.h" |
| r19107 | r19108 | |
| 33 | 32 | /* Devices */ |
| 34 | 33 | #include "machine/scsicd.h" |
| 35 | 34 | #include "machine/scsihd.h" |
| 36 | #include "imagedev/flopdrv.h" | |
| 37 | #include "formats/mfi_dsk.h" | |
| 38 | 35 | #include "formats/pc_dsk.h" |
| 39 | 36 | #include "machine/ram.h" |
| 40 | 37 | |
| r19107 | r19108 | |
| 131 | 128 | }; |
| 132 | 129 | |
| 133 | 130 | |
| 134 | static const floppy_format_type bebox_floppy_formats[] = { | |
| 135 | FLOPPY_PC_FORMAT, | |
| 136 | FLOPPY_MFI_FORMAT, | |
| 137 | NULL | |
| 138 | }; | |
| 131 | FLOPPY_FORMATS_MEMBER( bebox_state::floppy_formats ) | |
| 132 | FLOPPY_PC_FORMAT | |
| 133 | FLOPPY_FORMATS_END | |
| 139 | 134 | |
| 140 | 135 | static SLOT_INTERFACE_START( bebox_floppies ) |
| 141 | 136 | SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) |
| r19107 | r19108 | |
| 203 | 198 | /*MCFG_PCI_BUS_DEVICE(12, NULL, scsi53c810_pci_read, scsi53c810_pci_write)*/ |
| 204 | 199 | |
| 205 | 200 | MCFG_SMC37C78_ADD("smc37c78") |
| 206 | MCFG_FLOPPY_DRIVE_ADD("smc37c78:0", bebox_floppies, "35hd", 0, bebox_floppy_formats) | |
| 201 | MCFG_FLOPPY_DRIVE_ADD("smc37c78:0", bebox_floppies, "35hd", 0, bebox_state::floppy_formats) | |
| 207 | 202 | |
| 208 | 203 | MCFG_MC146818_ADD( "rtc", MC146818_STANDARD ) |
| 209 | 204 |
| r19107 | r19108 | |
|---|---|---|
| 1389 | 1389 | MCFG_RAM_DEFAULT_SIZE("32K") |
| 1390 | 1390 | MACHINE_CONFIG_END |
| 1391 | 1391 | |
| 1392 | static const floppy_format_type newbrain_floppy_formats[] = { | |
| 1393 | FLOPPY_MFI_FORMAT, | |
| 1394 | NULL | |
| 1395 | }; | |
| 1396 | ||
| 1397 | 1392 | static SLOT_INTERFACE_START( newbrain_floppies ) |
| 1398 | 1393 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 1399 | 1394 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1413 | 1408 | MCFG_ADC0808_ADD(ADC0809_TAG, 500000, adc_intf) |
| 1414 | 1409 | MCFG_ACIA6850_ADD(MC6850_TAG, acia_intf) |
| 1415 | 1410 | MCFG_UPD765A_ADD(UPD765_TAG, false, true) |
| 1416 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", newbrain_floppies, "525dd", 0, newbrain_floppy_formats) | |
| 1417 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", newbrain_floppies, "525dd", 0, newbrain_floppy_formats) | |
| 1411 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", newbrain_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1412 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", newbrain_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1418 | 1413 | |
| 1419 | 1414 | // internal ram |
| 1420 | 1415 | MCFG_RAM_MODIFY(RAM_TAG) |
| r19107 | r19108 | |
|---|---|---|
| 94 | 94 | UINT8 m_duart_io; |
| 95 | 95 | bool m_bCalibSecondByte; |
| 96 | 96 | |
| 97 | | |
| 97 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 98 | 98 | |
| 99 | 99 | private: |
| 100 | 100 | UINT16 es5510_dsp_ram[0x200]; |
| r19107 | r19108 | |
| 113 | 113 | DECLARE_INPUT_CHANGED_MEMBER(key_stroke); |
| 114 | 114 | }; |
| 115 | 115 | |
| 116 | const floppy_format_type esq5505_state::floppy_formats[] = { | |
| 117 | FLOPPY_ESQIMG_FORMAT, FLOPPY_IPF_FORMAT, FLOPPY_MFI_FORMAT, FLOPPY_DFI_FORMAT, | |
| 118 | NULL | |
| 119 | }; | |
| 116 | FLOPPY_FORMATS_MEMBER( esq5505_state::floppy_formats ) | |
| 117 | FLOPPY_ESQIMG_FORMAT | |
| 118 | FLOPPY_FORMATS_END | |
| 120 | 119 | |
| 121 | 120 | static SLOT_INTERFACE_START( ensoniq_floppies ) |
| 122 | 121 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| r19107 | r19108 | |
|---|---|---|
| 77 | 77 | #define VERBOSE_KEYBOARD 0 |
| 78 | 78 | #define VERBOSE_DISK 0 |
| 79 | 79 | |
| 80 | const floppy_format_type einstein_state::floppy_formats[] = { | |
| 81 | FLOPPY_DSK_FORMAT, FLOPPY_MFM_FORMAT, FLOPPY_MFI_FORMAT, | |
| 82 | NULL | |
| 83 | }; | |
| 80 | FLOPPY_FORMATS_MEMBER( einstein_state::floppy_formats ) | |
| 81 | FLOPPY_DSK_FORMAT | |
| 82 | FLOPPY_FORMATS_END | |
| 84 | 83 | |
| 85 | 84 | /*************************************************************************** |
| 86 | 85 | 80 COLUMN DEVICE |
| r19107 | r19108 | |
|---|---|---|
| 1032 | 1032 | // upd765_interface fdc_intf |
| 1033 | 1033 | //------------------------------------------------- |
| 1034 | 1034 | |
| 1035 | ||
| 1036 | static const floppy_format_type wangpc_floppy_formats[] = { | |
| 1037 | FLOPPY_MFI_FORMAT, | |
| 1038 | NULL | |
| 1039 | }; | |
| 1040 | ||
| 1041 | 1035 | static SLOT_INTERFACE_START( wangpc_floppies ) |
| 1042 | 1036 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 1043 | 1037 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 1256 | 1250 | MCFG_IM6402_ADD(IM6402_TAG, uart_intf) |
| 1257 | 1251 | MCFG_MC2661_ADD(SCN2661_TAG, 0, epci_intf) |
| 1258 | 1252 | MCFG_UPD765A_ADD(UPD765_TAG, false, false) |
| 1259 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", 0, wangpc_floppy_formats) | |
| 1260 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", 0, wangpc_floppy_formats) | |
| 1253 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1254 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) | |
| 1261 | 1255 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf) |
| 1262 | 1256 | MCFG_WANGPC_KEYBOARD_ADD() |
| 1263 | 1257 |
| r19107 | r19108 | |
|---|---|---|
| 509 | 509 | NULL |
| 510 | 510 | }; |
| 511 | 511 | |
| 512 | FLOPPY_FORMATS_MEMBER( samcoupe_state::floppy_formats ) | |
| 513 | FLOPPY_MGT_FORMAT | |
| 514 | FLOPPY_FORMATS_END | |
| 512 | 515 | |
| 513 | static const floppy_format_type samcoupe_floppy_formats[] = { | |
| 514 | FLOPPY_MGT_FORMAT, FLOPPY_MFI_FORMAT, | |
| 515 | NULL | |
| 516 | }; | |
| 517 | ||
| 518 | 516 | static SLOT_INTERFACE_START( samcoupe_floppies ) |
| 519 | 517 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| 520 | 518 | SLOT_INTERFACE_END |
| r19107 | r19108 | |
| 547 | 545 | MCFG_SOFTWARE_LIST_ADD("cass_list","samcoupe_cass") |
| 548 | 546 | |
| 549 | 547 | MCFG_WD1772x_ADD("wd1772", SAMCOUPE_XTAL_X1/3) |
| 550 | MCFG_FLOPPY_DRIVE_ADD("wd1772:0", samcoupe_floppies, "35dd", 0, samcoupe_floppy_formats) | |
| 551 | MCFG_FLOPPY_DRIVE_ADD("wd1772:1", samcoupe_floppies, "35dd", 0, samcoupe_floppy_formats) | |
| 548 | MCFG_FLOPPY_DRIVE_ADD("wd1772:0", samcoupe_floppies, "35dd", 0, samcoupe_state::floppy_formats) | |
| 549 | MCFG_FLOPPY_DRIVE_ADD("wd1772:1", samcoupe_floppies, "35dd", 0, samcoupe_state::floppy_formats) | |
| 552 | 550 | MCFG_SOFTWARE_LIST_ADD("flop_list","samcoupe_flop") |
| 553 | 551 | |
| 554 | 552 | /* sound hardware */ |
| r19107 | r19108 | |
|---|---|---|
| 41 | 41 | #include "emu.h" |
| 42 | 42 | #include "includes/amiga.h" |
| 43 | 43 | #include "formats/ami_dsk.h" |
| 44 | #include "formats/hxcmfm_dsk.h" | |
| 45 | #include "formats/ipf_dsk.h" | |
| 46 | #include "formats/mfi_dsk.h" | |
| 47 | #include "formats/dfi_dsk.h" | |
| 48 | 44 | #include "amigafdc.h" |
| 49 | 45 | #include "machine/6526cia.h" |
| 50 | 46 | |
| 51 | 47 | const device_type AMIGA_FDC = &device_creator<amiga_fdc>; |
| 52 | 48 | |
| 53 | const floppy_format_type amiga_fdc::floppy_formats[] = { | |
| 54 | FLOPPY_ADF_FORMAT, FLOPPY_MFM_FORMAT, FLOPPY_IPF_FORMAT, FLOPPY_MFI_FORMAT, FLOPPY_DFI_FORMAT, | |
| 55 | NULL | |
| 56 | }; | |
| 49 | FLOPPY_FORMATS_MEMBER( amiga_fdc::floppy_formats ) | |
| 50 | FLOPPY_ADF_FORMAT | |
| 51 | FLOPPY_FORMATS_END | |
| 57 | 52 | |
| 58 | ||
| 59 | 53 | amiga_fdc::amiga_fdc(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 60 | 54 | device_t(mconfig, AMIGA_FDC, "Amiga FDC", tag, owner, clock) |
| 61 | 55 | { |
| r19107 | r19108 | |
|---|---|---|
| 25 | 25 | void adkcon_set(UINT16 data); |
| 26 | 26 | void dmacon_set(UINT16 data); |
| 27 | 27 | |
| 28 | | |
| 28 | DECLARE_FLOPPY_FORMATS( floppy_formats ); | |
| 29 | 29 | |
| 30 | 30 | protected: |
| 31 | 31 | virtual void device_start(); |
| r19107 | r19108 | |
|---|---|---|
| 140 | 140 | //------------------------------------------------- |
| 141 | 141 | |
| 142 | 142 | sed1330_device::sed1330_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 143 | : device_t(mconfig, SED1330, "S | |
| 143 | : device_t(mconfig, SED1330, "SED1330", tag, owner, clock), | |
| 144 | 144 | device_memory_interface(mconfig, *this), |
| 145 | 145 | m_bf(0), |
| 146 | 146 | m_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, NULL, *ADDRESS_MAP_NAME(sed1330)) |
| 147 | 147 | { |
| 148 | m_shortname = "sed1330"; | |
| 149 | 148 | } |
| 150 | 149 | |
| 151 | 150 |
| r19107 | r19108 | |
|---|---|---|
| 43 | 43 | // inline configuration helpers |
| 44 | 44 | static void static_set_config(device_t &device, const char *screen_tag); |
| 45 | 45 | |
| 46 | // optional information overrides | |
| 47 | virtual const rom_entry *device_rom_region() const; | |
| 48 | ||
| 46 | 49 | DECLARE_READ8_MEMBER( status_r ); |
| 47 | 50 | DECLARE_WRITE8_MEMBER( command_w ); |
| 48 | 51 | |
| r19107 | r19108 | |
| 53 | 56 | |
| 54 | 57 | protected: |
| 55 | 58 | // device-level overrides |
| 56 | virtual | |
| 59 | virtual void device_config_complete() { m_shortname = "sed1330"; } | |
| 57 | 60 | virtual void device_start(); |
| 58 | 61 | virtual void device_reset(); |
| 59 | 62 |
| r19107 | r19108 | |
|---|---|---|
| 65 | 65 | |
| 66 | 66 | |
| 67 | 67 | //************************************************************************** |
| 68 | // GLOBAL VARIABLES | |
| 69 | //************************************************************************** | |
| 70 | ||
| 71 | // device type definition | |
| 72 | const device_type MSM6255 = &device_creator<msm6255_device>; | |
| 73 | ||
| 74 | ||
| 75 | // default address map | |
| 76 | static ADDRESS_MAP_START( msm6255, AS_0, 8, msm6255_device ) | |
| 77 | AM_RANGE(0x00000, 0xfffff) AM_RAM | |
| 78 | ADDRESS_MAP_END | |
| 79 | ||
| 80 | ||
| 81 | ||
| 82 | //************************************************************************** | |
| 68 | 83 | // INLINE HELPERS |
| 69 | 84 | //************************************************************************** |
| 70 | 85 | |
| 71 | 86 | //------------------------------------------------- |
| 72 | // read_ | |
| 87 | // read_byte - | |
| 73 | 88 | //------------------------------------------------- |
| 74 | 89 | |
| 75 | inline UINT8 msm6255_device::read_ | |
| 90 | inline UINT8 msm6255_device::read_byte(UINT16 ma, UINT8 ra) | |
| 76 | 91 | { |
| 77 | return m_char_ram_r(this, ma, ra); | |
| 92 | offs_t offset; | |
| 93 | ||
| 94 | if (m_mor & MOR_GRAPHICS) | |
| 95 | { | |
| 96 | offset = ma; | |
| 97 | } | |
| 98 | else | |
| 99 | { | |
| 100 | offset = ((offs_t)ma << 4) | ra; | |
| 101 | } | |
| 102 | ||
| 103 | return space().read_byte(offset); | |
| 78 | 104 | } |
| 79 | 105 | |
| 80 | 106 | |
| r19107 | r19108 | |
| 83 | 109 | // LIVE DEVICE |
| 84 | 110 | //************************************************************************** |
| 85 | 111 | |
| 86 | // device type definition | |
| 87 | const device_type MSM6255 = &device_creator<msm6255_device>; | |
| 88 | ||
| 89 | 112 | //------------------------------------------------- |
| 90 | 113 | // msm6255_device - constructor |
| 91 | 114 | //------------------------------------------------- |
| 92 | 115 | |
| 93 | 116 | msm6255_device::msm6255_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 94 | 117 | : device_t(mconfig, MSM6255, "MSM6255", tag, owner, clock), |
| 118 | device_memory_interface(mconfig, *this), | |
| 119 | m_space_config("videoram", ENDIANNESS_LITTLE, 8, 20, 0, NULL, *ADDRESS_MAP_NAME(msm6255)), | |
| 95 | 120 | m_cursor(0) |
| 96 | 121 | { |
| 97 | 122 | } |
| 98 | 123 | |
| 99 | 124 | |
| 100 | 125 | //------------------------------------------------- |
| 101 | // device_config_complete - perform any | |
| 102 | // operations now that the configuration is | |
| 103 | // complete | |
| 126 | // static_set_config - configuration helper | |
| 104 | 127 | //------------------------------------------------- |
| 105 | 128 | |
| 106 | void msm6255_device:: | |
| 129 | void msm6255_device::static_set_config(device_t &device, int char_clock, const char *screen_tag) | |
| 107 | 130 | { |
| 108 | // inherit a copy of the static data | |
| 109 | const msm6255_interface *intf = reinterpret_cast<const msm6255_interface *>(static_config()); | |
| 110 | if (intf != NULL) | |
| 111 | { | |
| 112 | *static_cast<msm6255_interface *>(this) = *intf; | |
| 131 | msm6255_device &msm6255 = downcast<msm6255_device &>(device); | |
| 113 | 132 | |
| 114 | m_char_ram_r = intf->m_char_ram_r; | |
| 115 | } | |
| 116 | // or initialize to defaults if none provided | |
| 117 | else | |
| 118 | { | |
| 119 | fatalerror("Interface not specified!\n"); | |
| 120 | } | |
| 133 | assert(screen_tag != NULL); | |
| 134 | ||
| 135 | msm6255.m_char_clock = char_clock; | |
| 136 | msm6255.m_screen_tag = screen_tag; | |
| 121 | 137 | } |
| 122 | 138 | |
| 123 | 139 | |
| r19107 | r19108 | |
| 157 | 173 | |
| 158 | 174 | |
| 159 | 175 | //------------------------------------------------- |
| 176 | // memory_space_config - return a description of | |
| 177 | // any address spaces owned by this device | |
| 178 | //------------------------------------------------- | |
| 179 | ||
| 180 | const address_space_config *msm6255_device::memory_space_config(address_spacenum spacenum) const | |
| 181 | { | |
| 182 | return (spacenum == AS_0) ? &m_space_config : NULL; | |
| 183 | } | |
| 184 | ||
| 185 | ||
| 186 | //------------------------------------------------- | |
| 160 | 187 | // read - register read |
| 161 | 188 | //------------------------------------------------- |
| 162 | 189 | |
| r19107 | r19108 | |
| 329 | 356 | |
| 330 | 357 | for (sx = 0; sx < hn; sx++) |
| 331 | 358 | { |
| 332 | UINT8 data = read_ | |
| 359 | UINT8 data = read_byte(ma, ra); | |
| 333 | 360 | |
| 334 | 361 | if (m_cursor) |
| 335 | 362 | { |
| r19107 | r19108 | |
| 373 | 400 | { |
| 374 | 401 | // draw upper half scanline |
| 375 | 402 | UINT16 ma = sar + (y * hn); |
| 376 | draw_scanline(bitmap, cliprect, y, ma | |
| 403 | draw_scanline(bitmap, cliprect, y, ma); | |
| 377 | 404 | |
| 378 | 405 | // draw lower half scanline |
| 379 | 406 | ma = sar + ((y + nx) * hn); |
| 380 | draw_scanline(bitmap, cliprect, y + nx, ma | |
| 407 | draw_scanline(bitmap, cliprect, y + nx, ma); | |
| 381 | 408 | } |
| 382 | 409 | } |
| 383 | 410 | |
| r19107 | r19108 | |
| 432 | 459 | } |
| 433 | 460 | else |
| 434 | 461 | { |
| 435 | bitmap.fill( | |
| 462 | bitmap.fill(0, cliprect); | |
| 436 | 463 | } |
| 464 | ||
| 437 | 465 | return 0; |
| 438 | 466 | } |
| r19107 | r19108 | |
|---|---|---|
| 20 | 20 | // INTERFACE CONFIGURATION MACROS |
| 21 | 21 | ///************************************************************************* |
| 22 | 22 | |
| 23 | #define MCFG_MSM6255_ADD(_tag, _clock, _con | |
| 23 | #define MCFG_MSM6255_ADD(_tag, _clock, _char_clock, _screen_tag, _map) \ | |
| 24 | 24 | MCFG_DEVICE_ADD(_tag, MSM6255, _clock) \ |
| 25 | MCFG_DEVICE_CONFIG(_config) | |
| 25 | MCFG_DEVICE_ADDRESS_MAP(AS_0, _map) \ | |
| 26 | msm6255_device::static_set_config(*device, _char_clock, _screen_tag); | |
| 26 | 27 | |
| 27 | 28 | |
| 28 | #define MSM6255_INTERFACE(name) \ | |
| 29 | const msm6255_interface (name) = | |
| 30 | 29 | |
| 31 | ||
| 32 | #define MSM6255_CHAR_RAM_READ(_name) \ | |
| 33 | UINT8 _name(device_t *device, UINT16 ma, UINT8 ra) | |
| 34 | ||
| 35 | ||
| 36 | ||
| 37 | 30 | ///************************************************************************* |
| 38 | 31 | // TYPE DEFINITIONS |
| 39 | 32 | ///************************************************************************* |
| 40 | 33 | |
| 41 | // ======================> msm6255_char_ram_read_func | |
| 42 | ||
| 43 | typedef UINT8 (*msm6255_char_ram_read_func)(device_t *device, UINT16 ma, UINT8 ra); | |
| 44 | ||
| 45 | ||
| 46 | // ======================> msm6255_interface | |
| 47 | ||
| 48 | struct msm6255_interface | |
| 49 | { | |
| 50 | const char *m_screen_tag; | |
| 51 | ||
| 52 | int m_character_clock; | |
| 53 | ||
| 54 | // ROM/RAM data read function | |
| 55 | msm6255_char_ram_read_func m_char_ram_r; | |
| 56 | }; | |
| 57 | ||
| 58 | ||
| 59 | 34 | // ======================> msm6255_device |
| 60 | 35 | |
| 61 | 36 | class msm6255_device : public device_t, |
| 62 | public m | |
| 37 | public device_memory_interface | |
| 63 | 38 | { |
| 64 | 39 | public: |
| 65 | 40 | // construction/destruction |
| 66 | 41 | msm6255_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 67 | 42 | |
| 43 | // inline configuration helpers | |
| 44 | static void static_set_config(device_t &device, int char_clock, const char *screen_tag); | |
| 45 | ||
| 68 | 46 | DECLARE_READ8_MEMBER( read ); |
| 69 | 47 | DECLARE_WRITE8_MEMBER( write ); |
| 70 | 48 | |
| r19107 | r19108 | |
| 72 | 50 | |
| 73 | 51 | protected: |
| 74 | 52 | // device-level overrides |
| 75 | virtual void device_config_complete(); | |
| 76 | virtual void device_start(); | |
| 77 | virtual void device_reset(); | |
| 53 | virtual void device_config_complete() { m_shortname = "msm6255"; } | |
| 54 | virtual void device_start(); | |
| 55 | virtual void device_reset(); | |
| 78 | 56 | |
| 57 | // device_memory_interface overrides | |
| 58 | virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; | |
| 59 | ||
| 79 | 60 | private: |
| 80 | inline UINT8 read_video_data(UINT16 ma, UINT8 ra); | |
| 61 | inline UINT8 read_byte(UINT16 ma, UINT8 ra); | |
| 62 | ||
| 81 | 63 | void update_cursor(); |
| 82 | void draw_scanline(bitmap_ind16 &bitmap, const rectangle &cliprect, int y, UINT16 ma, UINT8 ra); | |
| 64 | void draw_scanline(bitmap_ind16 &bitmap, const rectangle &cliprect, int y, UINT16 ma, UINT8 ra = 0); | |
| 83 | 65 | void update_graphics(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 84 | 66 | void update_text(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 85 | 67 | |
| 68 | const address_space_config m_space_config; | |
| 69 | const char *m_screen_tag; | |
| 86 | 70 | screen_device *m_screen; |
| 71 | int m_char_clock; | |
| 87 | 72 | |
| 88 | 73 | UINT8 m_ir; // instruction register |
| 89 | 74 | UINT8 m_mor; // mode control register |
| r19107 | r19108 | |
|---|---|---|
| 25 | 25 | const device_type FLOPPY_8_SSSD = &device_creator<floppy_8_sssd>; |
| 26 | 26 | const device_type FLOPPY_8_DSDD = &device_creator<floppy_8_dsdd>; |
| 27 | 27 | |
| 28 | const floppy_format_type floppy_image_device::default_floppy_formats[] = { | |
| 29 | FLOPPY_D88_FORMAT, | |
| 30 | FLOPPY_DFI_FORMAT, | |
| 31 | FLOPPY_IMD_FORMAT, | |
| 32 | FLOPPY_IPF_FORMAT, | |
| 33 | FLOPPY_MFI_FORMAT, | |
| 34 | FLOPPY_MFM_FORMAT, | |
| 35 | NULL | |
| 36 | }; | |
| 37 | ||
| 28 | 38 | floppy_connector::floppy_connector(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 29 | 39 | device_t(mconfig, FLOPPY_CONNECTOR, "Floppy drive connector abstraction", tag, owner, clock), |
| 30 | 40 | device_slot_interface(mconfig, *this) |
| r19107 | r19108 | |
|---|---|---|
| 8 | 8 | #define FLOPPY_H |
| 9 | 9 | |
| 10 | 10 | #include "formats/flopimg.h" |
| 11 | #include "formats/d88_dsk.h" | |
| 12 | #include "formats/dfi_dsk.h" | |
| 13 | #include "formats/hxcmfm_dsk.h" | |
| 14 | #include "formats/imd_dsk.h" | |
| 15 | #include "formats/ipf_dsk.h" | |
| 16 | #include "formats/mfi_dsk.h" | |
| 11 | 17 | |
| 12 | 18 | #define MCFG_FLOPPY_DRIVE_ADD(_tag, _slot_intf, _def_slot, _def_inp, _formats) \ |
| 13 | 19 | MCFG_DEVICE_ADD(_tag, FLOPPY_CONNECTOR, 0) \ |
| 14 | 20 | MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, false) \ |
| 15 | 21 | static_cast<floppy_connector *>(device)->set_formats(_formats); |
| 16 | 22 | |
| 23 | #define DECLARE_FLOPPY_FORMATS(_name) \ | |
| 24 | static const floppy_format_type _name []; | |
| 17 | 25 | |
| 26 | #define FLOPPY_FORMATS_MEMBER(_member) \ | |
| 27 | const floppy_format_type _member [] = { \ | |
| 28 | ||
| 29 | #define FLOPPY_FORMATS_END \ | |
| 30 | , \ | |
| 31 | FLOPPY_D88_FORMAT, \ | |
| 32 | FLOPPY_DFI_FORMAT, \ | |
| 33 | FLOPPY_IMD_FORMAT, \ | |
| 34 | FLOPPY_IPF_FORMAT, \ | |
| 35 | FLOPPY_MFI_FORMAT, \ | |
| 36 | FLOPPY_MFM_FORMAT, \ | |
| 37 | NULL }; | |
| 38 | ||
| 39 | ||
| 18 | 40 | /*************************************************************************** |
| 19 | 41 | TYPE DEFINITIONS |
| 20 | 42 | ***************************************************************************/ |
| r19107 | r19108 | |
| 89 | 111 | |
| 90 | 112 | virtual ui_menu *get_selection_menu(running_machine &machine, class render_container *container); |
| 91 | 113 | |
| 114 | static const floppy_format_type default_floppy_formats[]; | |
| 115 | ||
| 92 | 116 | protected: |
| 93 | 117 | // device-level overrides |
| 94 | 118 | virtual void device_config_complete(); |
| Previous | 199869 Revisions | Next |