trunk/src/mess/drivers/sage2.c
| r22907 | r22908 | |
| 90 | 90 | AM_RANGE(0xffc032, 0xffc033) AM_DEVREADWRITE8(I8251_1_TAG, i8251_device, status_r, control_w, 0x00ff) |
| 91 | 91 | AM_RANGE(0xffc040, 0xffc043) AM_DEVREADWRITE8(I8259_TAG, pic8259_device, read, write, 0x00ff) |
| 92 | 92 | AM_RANGE(0xffc050, 0xffc053) AM_DEVICE8(UPD765_TAG, upd765a_device, map, 0x00ff) |
| 93 | | AM_RANGE(0xffc060, 0xffc067) AM_DEVREADWRITE8(I8255A_0_TAG, i8255_device, read, write, 0x00ff) // i8255, Printer |
| 94 | | AM_RANGE(0xffc070, 0xffc071) AM_DEVREAD8(I8251_0_TAG, i8251_device, data_r, 0x00ff) AM_DEVWRITE8(TERMINAL_TAG, generic_terminal_device, write, 0x00ff) |
| 95 | | // AM_RANGE(0xffc070, 0xffc071) AM_DEVREADWRITE8(I8251_0_TAG, i8251_device, data_r, data_w, 0x00ff) |
| 93 | AM_RANGE(0xffc060, 0xffc067) AM_DEVREADWRITE8(I8255A_1_TAG, i8255_device, read, write, 0x00ff) // i8255, Printer |
| 94 | AM_RANGE(0xffc070, 0xffc071) AM_DEVREADWRITE8(I8251_0_TAG, i8251_device, data_r, data_w, 0x00ff) |
| 96 | 95 | AM_RANGE(0xffc072, 0xffc073) AM_DEVREADWRITE8(I8251_0_TAG, i8251_device, status_r, control_w, 0x00ff) |
| 97 | 96 | AM_RANGE(0xffc080, 0xffc087) AM_MIRROR(0x78) AM_DEVREADWRITE8_LEGACY(I8253_0_TAG, pit8253_r, pit8253_w, 0x00ff) |
| 98 | 97 | // AM_RANGE(0xffc400, 0xffc407) AM_DEVREADWRITE8(S2651_0_TAG, s2651_device, read, write, 0x00ff) |
| r22907 | r22908 | |
| 393 | 392 | |
| 394 | 393 | WRITE_LINE_MEMBER( sage2_state::br1_w ) |
| 395 | 394 | { |
| 396 | | m_usart0->transmit_clock(); |
| 397 | | m_usart0->receive_clock(); |
| 395 | if (state) |
| 396 | { |
| 397 | m_usart0->transmit_clock(); |
| 398 | m_usart0->receive_clock(); |
| 399 | } |
| 398 | 400 | } |
| 399 | 401 | |
| 400 | 402 | WRITE_LINE_MEMBER( sage2_state::br2_w ) |
| 401 | 403 | { |
| 402 | | m_usart1->transmit_clock(); |
| 403 | | m_usart1->receive_clock(); |
| 404 | if (state) |
| 405 | { |
| 406 | m_usart1->transmit_clock(); |
| 407 | m_usart1->receive_clock(); |
| 408 | } |
| 404 | 409 | } |
| 405 | 410 | |
| 406 | 411 | static const struct pit8253_config pit1_intf = |
| r22907 | r22908 | |
| 429 | 434 | |
| 430 | 435 | static const i8251_interface usart0_intf = |
| 431 | 436 | { |
| 432 | | DEVCB_NULL, //DEVCB_DEVICE_LINE(TERMINAL_TAG, terminal_serial_r), |
| 433 | | DEVCB_NULL, //DEVCB_DEVICE_LINE(TERMINAL_TAG, terminal_serial_w), |
| 434 | | DEVCB_NULL, |
| 435 | | DEVCB_NULL, |
| 436 | | DEVCB_NULL, |
| 437 | DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx), |
| 438 | DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx), |
| 439 | DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dsr_r), |
| 440 | DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w), |
| 441 | DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w), |
| 437 | 442 | DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_5), |
| 438 | 443 | DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir2_w), |
| 439 | 444 | DEVCB_NULL, |
| r22907 | r22908 | |
| 447 | 452 | |
| 448 | 453 | static const i8251_interface usart1_intf = |
| 449 | 454 | { |
| 450 | | DEVCB_NULL, |
| 451 | | DEVCB_NULL, |
| 452 | | DEVCB_NULL, |
| 453 | | DEVCB_NULL, |
| 454 | | DEVCB_NULL, |
| 455 | DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx), |
| 456 | DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx), |
| 457 | DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dsr_r), |
| 458 | DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w), |
| 459 | DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w), |
| 455 | 460 | DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir1_w), |
| 456 | 461 | DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir3_w), |
| 457 | 462 | DEVCB_NULL, |
| r22907 | r22908 | |
| 500 | 505 | |
| 501 | 506 | |
| 502 | 507 | //------------------------------------------------- |
| 503 | | // GENERIC_TERMINAL_INTERFACE( terminal_intf ) |
| 508 | // rs232_port_interface rs232a_intf |
| 504 | 509 | //------------------------------------------------- |
| 505 | 510 | |
| 506 | | WRITE8_MEMBER( sage2_state::kbd_put ) |
| 511 | static DEVICE_INPUT_DEFAULTS_START( terminal ) |
| 512 | DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x0f, 0x08 ) // 19200 |
| 513 | DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x30, 0x10 ) // 7E1 |
| 514 | DEVICE_INPUT_DEFAULTS_END |
| 515 | |
| 516 | static const rs232_port_interface rs232a_intf = |
| 507 | 517 | { |
| 508 | | m_usart0->receive_character(data); |
| 509 | | } |
| 518 | DEVCB_NULL, |
| 519 | DEVCB_NULL, |
| 520 | DEVCB_NULL, |
| 521 | DEVCB_NULL, |
| 522 | DEVCB_NULL |
| 523 | }; |
| 510 | 524 | |
| 511 | | static GENERIC_TERMINAL_INTERFACE( terminal_intf ) |
| 525 | |
| 526 | //------------------------------------------------- |
| 527 | // rs232_port_interface rs232b_intf |
| 528 | //------------------------------------------------- |
| 529 | |
| 530 | static const rs232_port_interface rs232b_intf = |
| 512 | 531 | { |
| 513 | | DEVCB_DRIVER_MEMBER(sage2_state, kbd_put) |
| 532 | DEVCB_NULL, |
| 533 | DEVCB_NULL, |
| 534 | DEVCB_NULL, |
| 535 | DEVCB_NULL, |
| 536 | DEVCB_NULL |
| 514 | 537 | }; |
| 515 | 538 | |
| 516 | 539 | |
| r22907 | r22908 | |
| 557 | 580 | MCFG_CPU_ADD(M68000_TAG, M68000, XTAL_16MHz/2) |
| 558 | 581 | MCFG_CPU_PROGRAM_MAP(sage2_mem) |
| 559 | 582 | |
| 560 | | // video hardware |
| 561 | | MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) |
| 562 | | |
| 563 | 583 | // devices |
| 564 | 584 | MCFG_PIC8259_ADD(I8259_TAG, INPUTLINE(M68000_TAG, M68K_IRQ_1), VCC, NULL) |
| 565 | 585 | MCFG_I8255A_ADD(I8255A_0_TAG, ppi0_intf) |
| r22907 | r22908 | |
| 573 | 593 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", sage2_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) |
| 574 | 594 | MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", sage2_floppies, "525qd", 0, floppy_image_device::default_floppy_formats) |
| 575 | 595 | MCFG_IEEE488_BUS_ADD() |
| 596 | MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, "serial_terminal", terminal) |
| 597 | MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL, NULL) |
| 576 | 598 | |
| 577 | 599 | // internal ram |
| 578 | 600 | MCFG_RAM_ADD(RAM_TAG) |