shelves/new_menus/src/mess/drivers/c65.c
| r29293 | r29294 | |
| 52 | 52 | |
| 53 | 53 | #include "emu.h" |
| 54 | 54 | #include "cpu/m6502/m4510.h" |
| 55 | | #include "sound/mos6581.h" |
| 56 | 55 | #include "machine/mos6526.h" |
| 57 | | #include "video/vic4567.h" |
| 58 | 56 | #include "machine/cbm_snqk.h" |
| 59 | 57 | #include "includes/c65.h" |
| 60 | 58 | #include "bus/cbmiec/cbmiec.h" |
| r29293 | r29294 | |
| 466 | 464 | |
| 467 | 465 | READ8_MEMBER( c65_state::sid_potx_r ) |
| 468 | 466 | { |
| 469 | | device_t *sid = machine().device("sid_r"); |
| 470 | | |
| 471 | | return c64_paddle_read(sid, space, 0); |
| 467 | return c64_paddle_read(m_sid_r, space, 0); |
| 472 | 468 | } |
| 473 | 469 | |
| 474 | 470 | READ8_MEMBER( c65_state::sid_poty_r ) |
| 475 | 471 | { |
| 476 | | device_t *sid = machine().device("sid_r"); |
| 477 | | |
| 478 | | return c64_paddle_read(sid, space, 1); |
| 472 | return c64_paddle_read(m_sid_r, space, 1); |
| 479 | 473 | } |
| 480 | 474 | |
| 481 | 475 | |
| r29293 | r29294 | |
| 487 | 481 | |
| 488 | 482 | UINT32 c65_state::screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 489 | 483 | { |
| 490 | | machine().device<vic3_device>("vic3")->video_update(bitmap, cliprect); |
| 484 | m_vic->video_update(bitmap, cliprect); |
| 491 | 485 | return 0; |
| 492 | 486 | } |
| 493 | 487 | |
| r29293 | r29294 | |
| 539 | 533 | |
| 540 | 534 | INTERRUPT_GEN_MEMBER(c65_state::vic3_raster_irq) |
| 541 | 535 | { |
| 542 | | machine().device<vic3_device>("vic3")->raster_interrupt_gen(); |
| 536 | m_vic->raster_interrupt_gen(); |
| 543 | 537 | } |
| 544 | 538 | |
| 545 | 539 | /************************************* |
shelves/new_menus/src/mess/drivers/bcs3.c
| r29293 | r29294 | |
| 25 | 25 | bcs3_state(const machine_config &mconfig, device_type type, const char *tag) |
| 26 | 26 | : driver_device(mconfig, type, tag), |
| 27 | 27 | m_maincpu(*this, "maincpu"), |
| 28 | | m_p_videoram(*this, "videoram"){ } |
| 28 | m_p_chargen(*this, "chargen"), |
| 29 | m_p_videoram(*this, "videoram"), |
| 30 | m_io_line0(*this, "LINE0"), |
| 31 | m_io_line1(*this, "LINE1"), |
| 32 | m_io_line2(*this, "LINE2"), |
| 33 | m_io_line3(*this, "LINE3"), |
| 34 | m_io_line4(*this, "LINE4"), |
| 35 | m_io_line5(*this, "LINE5"), |
| 36 | m_io_line6(*this, "LINE6"), |
| 37 | m_io_line7(*this, "LINE7"), |
| 38 | m_io_line8(*this, "LINE8") |
| 39 | { } |
| 29 | 40 | |
| 30 | 41 | required_device<cpu_device> m_maincpu; |
| 31 | | const UINT8 *m_p_chargen; |
| 42 | required_memory_region m_p_chargen; |
| 32 | 43 | required_shared_ptr<UINT8> m_p_videoram; |
| 44 | required_ioport m_io_line0; |
| 45 | required_ioport m_io_line1; |
| 46 | required_ioport m_io_line2; |
| 47 | required_ioport m_io_line3; |
| 48 | required_ioport m_io_line4; |
| 49 | required_ioport m_io_line5; |
| 50 | required_ioport m_io_line6; |
| 51 | required_ioport m_io_line7; |
| 52 | required_ioport m_io_line8; |
| 33 | 53 | DECLARE_READ8_MEMBER(bcs3_keyboard_r); |
| 34 | 54 | virtual void machine_reset(); |
| 35 | 55 | virtual void video_start(); |
| r29293 | r29294 | |
| 44 | 64 | UINT8 data = 0; |
| 45 | 65 | |
| 46 | 66 | if (~offset & 0x01) |
| 47 | | data |= ioport("LINE0")->read(); |
| 67 | data |= m_io_line0->read(); |
| 48 | 68 | if (~offset & 0x02) |
| 49 | | data |= ioport("LINE1")->read(); |
| 69 | data |= m_io_line1->read(); |
| 50 | 70 | if (~offset & 0x04) |
| 51 | | data |= ioport("LINE2")->read(); |
| 71 | data |= m_io_line2->read(); |
| 52 | 72 | if (~offset & 0x08) |
| 53 | | data |= ioport("LINE3")->read(); |
| 73 | data |= m_io_line3->read(); |
| 54 | 74 | if (~offset & 0x10) |
| 55 | | data |= ioport("LINE4")->read(); |
| 75 | data |= m_io_line4->read(); |
| 56 | 76 | if (~offset & 0x20) |
| 57 | | data |= ioport("LINE5")->read(); |
| 77 | data |= m_io_line5->read(); |
| 58 | 78 | if (~offset & 0x40) |
| 59 | | data |= ioport("LINE6")->read(); |
| 79 | data |= m_io_line6->read(); |
| 60 | 80 | if (~offset & 0x80) |
| 61 | | data |= ioport("LINE7")->read(); |
| 81 | data |= m_io_line7->read(); |
| 62 | 82 | if (~offset & 0x100) |
| 63 | | data |= ioport("LINE8")->read(); |
| 83 | data |= m_io_line8->read(); |
| 64 | 84 | |
| 65 | 85 | return data; |
| 66 | 86 | } |
| r29293 | r29294 | |
| 219 | 239 | |
| 220 | 240 | void bcs3_state::video_start() |
| 221 | 241 | { |
| 222 | | m_p_chargen = memregion("chargen")->base(); |
| 223 | 242 | } |
| 224 | 243 | |
| 225 | 244 | UINT32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r29293 | r29294 | |
| 241 | 260 | chr = m_p_videoram[x] & 0x7f; |
| 242 | 261 | |
| 243 | 262 | /* get pattern of pixels for that character scanline */ |
| 244 | | gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff; |
| 263 | gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff; |
| 245 | 264 | } |
| 246 | 265 | else |
| 247 | 266 | gfx = 0xff; |
| r29293 | r29294 | |
| 286 | 305 | chr = m_p_videoram[x] & 0x7f; |
| 287 | 306 | |
| 288 | 307 | /* get pattern of pixels for that character scanline */ |
| 289 | | gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff; |
| 308 | gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff; |
| 290 | 309 | } |
| 291 | 310 | else |
| 292 | 311 | gfx = 0xff; |
| r29293 | r29294 | |
| 329 | 348 | chr = m_p_videoram[x] & 0x7f; |
| 330 | 349 | |
| 331 | 350 | /* get pattern of pixels for that character scanline */ |
| 332 | | gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff; |
| 351 | gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff; |
| 333 | 352 | } |
| 334 | 353 | else |
| 335 | 354 | gfx = 0xff; |
| r29293 | r29294 | |
| 372 | 391 | chr = m_p_videoram[x] & 0x7f; |
| 373 | 392 | |
| 374 | 393 | /* get pattern of pixels for that character scanline */ |
| 375 | | gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff; |
| 394 | gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff; |
| 376 | 395 | } |
| 377 | 396 | else |
| 378 | 397 | gfx = 0xff; |
shelves/new_menus/src/mess/drivers/amust.c
| r29293 | r29294 | |
| 43 | 43 | - Everything |
| 44 | 44 | - Need software |
| 45 | 45 | - If booting straight to CP/M, the load message should be in the middle of the screen. |
| 46 | - Beeper is a low pulse on bit 0 of port 0b - enable a pit event? |
| 46 | 47 | |
| 47 | 48 | ****************************************************************************/ |
| 48 | 49 | |
| r29293 | r29294 | |
| 51 | 52 | #include "video/mc6845.h" |
| 52 | 53 | #include "machine/upd765.h" |
| 53 | 54 | #include "machine/keyboard.h" |
| 55 | //#include "machine/pit8253.h" |
| 56 | //#include "machine/i8255.h" |
| 57 | //#include "machine/i8251.h" |
| 54 | 58 | |
| 55 | 59 | |
| 56 | 60 | class amust_state : public driver_device |
| r29293 | r29294 | |
| 116 | 120 | AM_RANGE(0x0e, 0x0e) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) |
| 117 | 121 | AM_RANGE(0x0f, 0x0f) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) |
| 118 | 122 | AM_RANGE(0x10, 0x11) AM_DEVICE("fdc", upd765a_device, map) |
| 123 | //AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w) |
| 124 | //AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w) |
| 125 | //AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("uart2", i8251_device, data_r, data_w) |
| 126 | //AM_RANGE(0x03, 0x03) AM_DEVREADWRITE("uart2", i8251_device, status_r, control_w) |
| 127 | //AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ppi1", i8255_device, read, write) |
| 128 | //AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ppi2", i8255_device, read, write) |
| 129 | //AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("pit", pit8253_device, read, write) |
| 119 | 130 | ADDRESS_MAP_END |
| 120 | 131 | |
| 121 | 132 | static SLOT_INTERFACE_START( amust_floppies ) |
| r29293 | r29294 | |
| 166 | 177 | m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf); |
| 167 | 178 | } |
| 168 | 179 | |
| 180 | //static I8255_INTERFACE( ppi1_intf ) |
| 181 | //{ |
| 182 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pa_r), // Port A read |
| 183 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pa_w), // Port A write |
| 184 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pb_r), // Port B read |
| 185 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pb_w), // Port B write |
| 186 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pc_r), // Port C read |
| 187 | // DEVCB_DRIVER_MEMBER(amust_state, ppi1_pc_w), // Port C write |
| 188 | //}; |
| 189 | |
| 190 | //static I8255_INTERFACE( ppi2_intf ) |
| 191 | //{ |
| 192 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pa_r), // Port A read |
| 193 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pa_w), // Port A write |
| 194 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pb_r), // Port B read |
| 195 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pb_w), // Port B write |
| 196 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pc_r), // Port C read |
| 197 | // DEVCB_DRIVER_MEMBER(amust_state, ppi2_pc_w), // Port C write |
| 198 | //}; |
| 199 | |
| 169 | 200 | WRITE8_MEMBER( amust_state::kbd_put ) |
| 170 | 201 | { |
| 171 | 202 | m_term_data = data; |
| r29293 | r29294 | |
| 284 | 315 | MCFG_UPD765A_ADD("fdc", false, true) |
| 285 | 316 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "525dd", floppy_image_device::default_floppy_formats) |
| 286 | 317 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "525dd", floppy_image_device::default_floppy_formats) |
| 318 | |
| 319 | //MCFG_DEVICE_ADD("uart1", I8251, 0) |
| 320 | //MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) |
| 321 | //MCFG_I8251_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr)) |
| 322 | //MCFG_I8251_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts)) |
| 323 | |
| 324 | //MCFG_DEVICE_ADD("uart2", I8251, 0) |
| 325 | //MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) |
| 326 | //MCFG_I8251_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr)) |
| 327 | //MCFG_I8251_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts)) |
| 328 | |
| 329 | //MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "serial_terminal") |
| 330 | //MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_rxd)) |
| 331 | //MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_cts)) |
| 332 | //MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_dsr)) |
| 333 | |
| 334 | //MCFG_DEVICE_ADD("pit", PIT8253, 0) |
| 335 | |
| 336 | //MCFG_I8255A_ADD("ppi1", ppi1_intf) |
| 337 | //MCFG_I8255A_ADD("ppi2", ppi2_intf) |
| 287 | 338 | MACHINE_CONFIG_END |
| 288 | 339 | |
| 289 | 340 | /* ROM definition */ |
shelves/new_menus/src/mess/drivers/fm7.c
| r29293 | r29294 | |
| 46 | 46 | |
| 47 | 47 | #include "imagedev/cassette.h" |
| 48 | 48 | #include "formats/fm7_cas.h" |
| 49 | | #include "machine/wd17xx.h" |
| 50 | 49 | #include "imagedev/flopdrv.h" |
| 51 | 50 | #include "bus/centronics/dsjoy.h" |
| 52 | 51 | |
| r29293 | r29294 | |
| 432 | 431 | |
| 433 | 432 | READ8_MEMBER(fm7_state::fm7_fdc_r) |
| 434 | 433 | { |
| 435 | | mb8877_device *fdc = machine().device<mb8877_device>("fdc"); |
| 436 | 434 | UINT8 ret = 0; |
| 437 | 435 | |
| 438 | 436 | switch(offset) |
| 439 | 437 | { |
| 440 | 438 | case 0: |
| 441 | | return fdc->status_r(space, offset); |
| 439 | return m_fdc->status_r(space, offset); |
| 442 | 440 | case 1: |
| 443 | | return fdc->track_r(space, offset); |
| 441 | return m_fdc->track_r(space, offset); |
| 444 | 442 | case 2: |
| 445 | | return fdc->sector_r(space, offset); |
| 443 | return m_fdc->sector_r(space, offset); |
| 446 | 444 | case 3: |
| 447 | | return fdc->data_r(space, offset); |
| 445 | return m_fdc->data_r(space, offset); |
| 448 | 446 | case 4: |
| 449 | 447 | return m_fdc_side | 0xfe; |
| 450 | 448 | case 5: |
| r29293 | r29294 | |
| 466 | 464 | |
| 467 | 465 | WRITE8_MEMBER(fm7_state::fm7_fdc_w) |
| 468 | 466 | { |
| 469 | | mb8877_device *fdc = machine().device<mb8877_device>("fdc"); |
| 470 | 467 | switch(offset) |
| 471 | 468 | { |
| 472 | 469 | case 0: |
| 473 | | fdc->command_w(space, offset,data); |
| 470 | m_fdc->command_w(space, offset,data); |
| 474 | 471 | break; |
| 475 | 472 | case 1: |
| 476 | | fdc->track_w(space, offset,data); |
| 473 | m_fdc->track_w(space, offset,data); |
| 477 | 474 | break; |
| 478 | 475 | case 2: |
| 479 | | fdc->sector_w(space, offset,data); |
| 476 | m_fdc->sector_w(space, offset,data); |
| 480 | 477 | break; |
| 481 | 478 | case 3: |
| 482 | | fdc->data_w(space, offset,data); |
| 479 | m_fdc->data_w(space, offset,data); |
| 483 | 480 | break; |
| 484 | 481 | case 4: |
| 485 | 482 | m_fdc_side = data & 0x01; |
| 486 | | fdc->set_side(data & 0x01); |
| 483 | m_fdc->set_side(data & 0x01); |
| 487 | 484 | logerror("FDC: wrote %02x to 0x%04x (side)\n",data,offset+0xfd18); |
| 488 | 485 | break; |
| 489 | 486 | case 5: |
| r29293 | r29294 | |
| 494 | 491 | } |
| 495 | 492 | else |
| 496 | 493 | { |
| 497 | | fdc->set_drive(data & 0x03); |
| 494 | m_fdc->set_drive(data & 0x03); |
| 498 | 495 | floppy_mon_w(floppy_get_device(machine(), data & 0x03), !BIT(data, 7)); |
| 499 | 496 | floppy_drive_set_ready_state(floppy_get_device(machine(), data & 0x03), data & 0x80,0); |
| 500 | 497 | logerror("FDC: wrote %02x to 0x%04x (drive)\n",data,offset+0xfd18); |
shelves/new_menus/src/mess/includes/v1050.h
| r29293 | r29294 | |
| 67 | 67 | m_maincpu(*this, Z80_TAG), |
| 68 | 68 | m_subcpu(*this, M6502_TAG), |
| 69 | 69 | m_pic(*this, UPB8214_TAG), |
| 70 | m_ppi_disp(*this, I8255A_DISP_TAG), |
| 71 | m_ppi_6502(*this, I8255A_M6502_TAG), |
| 70 | 72 | m_rtc(*this, MSM58321RS_TAG), |
| 71 | 73 | m_uart_kb(*this, I8251A_KB_TAG), |
| 72 | 74 | m_uart_sio(*this, I8251A_SIO_TAG), |
| r29293 | r29294 | |
| 163 | 165 | required_device<cpu_device> m_maincpu; |
| 164 | 166 | required_device<cpu_device> m_subcpu; |
| 165 | 167 | required_device<i8214_device> m_pic; |
| 168 | required_device<i8255_device> m_ppi_disp; |
| 169 | required_device<i8255_device> m_ppi_6502; |
| 166 | 170 | required_device<msm58321_device> m_rtc; |
| 167 | 171 | required_device<i8251_device> m_uart_kb; |
| 168 | 172 | required_device<i8251_device> m_uart_sio; |