trunk/src/mess/drivers/prof180x.c
| r20392 | r20393 | |
| 28 | 28 | #include "machine/upd765.h" |
| 29 | 29 | #include "includes/prof180x.h" |
| 30 | 30 | |
| 31 | | UINT32 prof180x_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 31 | UINT32 prof180x_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 32 | 32 | { |
| 33 | 33 | return 0; |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | | void prof180x_state::bankswitch() |
| 36 | |
| 37 | READ8_MEMBER( prof180x_state::read ) |
| 37 | 38 | { |
| 39 | UINT8 data = 0; |
| 40 | |
| 41 | if (offset < 0x40000) |
| 42 | { |
| 43 | |
| 44 | } |
| 45 | else |
| 46 | { |
| 47 | |
| 48 | } |
| 49 | /* |
| 38 | 50 | switch ((m_mm1 << 1) | m_mm0) |
| 39 | 51 | { |
| 40 | 52 | case 0: |
| r20392 | r20393 | |
| 53 | 65 | // bank0_r = RAM, bank0_w = RAM, bank1 = UNMAP |
| 54 | 66 | break; |
| 55 | 67 | } |
| 68 | */ |
| 69 | return data; |
| 56 | 70 | } |
| 57 | 71 | |
| 72 | WRITE8_MEMBER( prof180x_state::write ) |
| 73 | { |
| 74 | if (offset < 0x40000) |
| 75 | { |
| 76 | |
| 77 | } |
| 78 | else |
| 79 | { |
| 80 | |
| 81 | } |
| 82 | } |
| 83 | |
| 58 | 84 | void prof180x_state::ls259_w(int flag, int value) |
| 59 | 85 | { |
| 60 | 86 | switch (flag) |
| r20392 | r20393 | |
| 76 | 102 | |
| 77 | 103 | case 4: // MM0 |
| 78 | 104 | m_mm0 = value; |
| 79 | | bankswitch(); |
| 80 | 105 | break; |
| 81 | 106 | |
| 82 | 107 | case 5: // RTC |
| r20392 | r20393 | |
| 87 | 112 | |
| 88 | 113 | case 7: // MM1 |
| 89 | 114 | m_mm1 = value; |
| 90 | | bankswitch(); |
| 91 | 115 | break; |
| 92 | 116 | } |
| 93 | 117 | } |
| r20392 | r20393 | |
| 163 | 187 | /* Address Maps */ |
| 164 | 188 | |
| 165 | 189 | static ADDRESS_MAP_START( prof180x_mem, AS_PROGRAM, 8, prof180x_state ) |
| 166 | | AM_RANGE(0x00000, 0x3ffff) AM_READ_BANK("bank0_r") AM_WRITE_BANK("bank0_w") |
| 167 | | AM_RANGE(0x40000, 0x7ffff) AM_RAMBANK("bank1") |
| 190 | AM_RANGE(0x00000, 0x7ffff) AM_READWRITE(read, write) |
| 168 | 191 | ADDRESS_MAP_END |
| 169 | 192 | |
| 170 | 193 | static ADDRESS_MAP_START( prof180x_io , AS_IO, 8, prof180x_state ) |
| 171 | 194 | AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_WRITE(flr_w) |
| 172 | 195 | AM_RANGE(0x09, 0x09) AM_MASK(0xff00) AM_READ(status_r) |
| 173 | | |
| 174 | | // Seriously? |
| 175 | | // AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(FDC9268_TAG, upd765_dack_r, upd765_dack_w) |
| 196 | AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_DEVREADWRITE(FDC9268_TAG, upd765a_device, mdma_r, mdma_w) |
| 176 | 197 | AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_DEVWRITE(CENTRONICS_TAG, centronics_device, write) |
| 177 | 198 | AM_RANGE(0x0c, 0x0d) AM_MIRROR(0xff00) AM_DEVICE(FDC9268_TAG, upd765a_device, map) |
| 178 | 199 | ADDRESS_MAP_END |
| r20392 | r20393 | |
| 185 | 206 | /* Video */ |
| 186 | 207 | |
| 187 | 208 | static SLOT_INTERFACE_START( prof180x_floppies ) |
| 188 | | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 209 | SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) |
| 189 | 210 | SLOT_INTERFACE_END |
| 190 | 211 | |
| 191 | 212 | /* |
| 192 | | static RTC8583_INTERFCE( rtc_intf ) |
| 213 | static RTC8583_INTERFACE( rtc_intf ) |
| 193 | 214 | { |
| 194 | 215 | DEVCB_CPU_INPUT_LINE(HD64180_TAG, INPUT_LINE_INT2) |
| 195 | 216 | }; |
| r20392 | r20393 | |
| 215 | 236 | |
| 216 | 237 | static MACHINE_CONFIG_START( prof180x, prof180x_state ) |
| 217 | 238 | /* basic machine hardware */ |
| 218 | | MCFG_CPU_ADD(HD64180_TAG, Z80, XTAL_9_216MHz) // HD64180 |
| 239 | MCFG_CPU_ADD(HD64180_TAG, Z80, XTAL_9_216MHz) |
| 219 | 240 | MCFG_CPU_PROGRAM_MAP(prof180x_mem) |
| 220 | 241 | MCFG_CPU_IO_MAP(prof180x_io) |
| 221 | 242 | |
| 222 | 243 | /* video hardware */ |
| 223 | 244 | MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) |
| 245 | MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update) |
| 224 | 246 | MCFG_SCREEN_REFRESH_RATE(50) |
| 225 | 247 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 226 | | MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update) |
| 227 | 248 | MCFG_SCREEN_SIZE(640, 480) |
| 228 | 249 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
| 229 | | MCFG_PALETTE_LENGTH(2) |
| 230 | | MCFG_PALETTE_INIT(black_and_white) |
| 231 | 250 | |
| 232 | 251 | /* devices */ |
| 233 | 252 | MCFG_UPD765A_ADD(FDC9268_TAG, false, true) |
| 234 | | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":0", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 235 | | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":1", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 236 | | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":2", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 237 | | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":3", prof180x_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 253 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":0", prof180x_floppies, "35dd", 0, floppy_image_device::default_floppy_formats) |
| 254 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":1", prof180x_floppies, 0, 0, floppy_image_device::default_floppy_formats) |
| 255 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":2", prof180x_floppies, 0, 0, floppy_image_device::default_floppy_formats) |
| 256 | MCFG_FLOPPY_DRIVE_ADD(FDC9268_TAG ":3", prof180x_floppies, 0, 0, floppy_image_device::default_floppy_formats) |
| 238 | 257 | |
| 239 | 258 | //MCFG_RTC8583_ADD(MK3835_TAG, rtc_intf) |
| 240 | 259 | MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) |