trunk/src/emu/cpu/tms0980/tms0980.c
| r242291 | r242292 | |
| 397 | 397 | m_r = 0; |
| 398 | 398 | m_o = 0; |
| 399 | 399 | m_o_latch = 0; |
| 400 | m_o_latch_low = 0; |
| 400 | 401 | m_cki_bus = 0; |
| 401 | 402 | m_c4 = 0; |
| 402 | 403 | m_p = 0; |
| r242291 | r242292 | |
| 423 | 424 | |
| 424 | 425 | m_a_prev = m_a; |
| 425 | 426 | m_r_prev = m_r; |
| 426 | | m_o_prev = m_o; |
| 427 | m_o_latch_prev = m_o; |
| 427 | 428 | |
| 428 | 429 | // register for savestates |
| 429 | 430 | save_item(NAME(m_pc)); |
| r242291 | r242292 | |
| 439 | 440 | save_item(NAME(m_r)); |
| 440 | 441 | save_item(NAME(m_o)); |
| 441 | 442 | save_item(NAME(m_o_latch)); |
| 443 | save_item(NAME(m_o_latch_low)); |
| 442 | 444 | save_item(NAME(m_cki_bus)); |
| 443 | 445 | save_item(NAME(m_c4)); |
| 444 | 446 | save_item(NAME(m_p)); |
| r242291 | r242292 | |
| 465 | 467 | |
| 466 | 468 | save_item(NAME(m_a_prev)); |
| 467 | 469 | save_item(NAME(m_r_prev)); |
| 468 | | save_item(NAME(m_o_prev)); |
| 470 | save_item(NAME(m_o_latch_prev)); |
| 469 | 471 | |
| 470 | 472 | // register state for debugger |
| 471 | 473 | state_add(TMS0980_PC, "PC", m_pc ).formatstr("%02X"); |
| r242291 | r242292 | |
| 511 | 513 | // clear outputs |
| 512 | 514 | m_r = 0; |
| 513 | 515 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 516 | m_o_latch_low = 0; |
| 514 | 517 | m_o_latch = 0; |
| 515 | 518 | write_o_output(0); |
| 516 | 519 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 520 | m_power_off(0); |
| 517 | 521 | } |
| 518 | 522 | |
| 519 | 523 | |
| r242291 | r242292 | |
| 741 | 745 | { |
| 742 | 746 | // a hardcoded table is supported if the output pla is unknown |
| 743 | 747 | m_o = (c_output_pla == NULL) ? m_opla->read(data) : c_output_pla[data]; |
| 744 | | |
| 745 | | if ((m_o & 0xff00) == 0xff00) |
| 746 | | logerror("unknown output pla mapping for index %02X\n", data); |
| 747 | | |
| 748 | 748 | m_write_o(0, m_o & m_o_mask, 0xffff); |
| 749 | 749 | } |
| 750 | 750 | |
| r242291 | r242292 | |
| 761 | 761 | |
| 762 | 762 | m_a_prev = m_a; |
| 763 | 763 | m_r_prev = m_r; |
| 764 | | m_o_prev = m_o; |
| 764 | m_o_latch_prev = m_o_latch; |
| 765 | 765 | } |
| 766 | 766 | |
| 767 | 767 | |
| r242291 | r242292 | |
| 965 | 965 | |
| 966 | 966 | void tms1xxx_cpu_device::op_off() |
| 967 | 967 | { |
| 968 | | // OFF: request power off |
| 969 | | logerror("%s: power-off request\n", tag()); |
| 968 | // OFF: request auto power-off |
| 970 | 969 | m_power_off(1); |
| 971 | 970 | } |
| 972 | 971 | |
| r242291 | r242292 | |
| 1000 | 999 | { |
| 1001 | 1000 | // TDO: transfer data out |
| 1002 | 1001 | if (m_status) |
| 1003 | | m_o_latch = m_a; |
| 1002 | m_o_latch_low = m_a; |
| 1004 | 1003 | else |
| 1005 | | m_o = m_o_latch | (m_a << 4 & 0x30); |
| 1004 | m_o_latch = m_o_latch_low | (m_a << 4 & 0x30); |
| 1006 | 1005 | |
| 1007 | 1006 | // handled further in dynamic_output |
| 1008 | 1007 | } |
trunk/src/mess/drivers/microvsn.c
| r242291 | r242292 | |
| 496 | 496 | /* O output PLA configuration currently unknown */ |
| 497 | 497 | 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, |
| 498 | 498 | 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F, |
| 499 | | 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, |
| 500 | | 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00 |
| 499 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 500 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 501 | 501 | }; |
| 502 | 502 | |
| 503 | 503 | |
| r242291 | r242292 | |
| 507 | 507 | /* Reversed bit order */ |
| 508 | 508 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
| 509 | 509 | 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
| 510 | | 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, |
| 511 | | 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00 |
| 510 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 512 | 512 | }; |
| 513 | 513 | |
| 514 | 514 | |