trunk/src/devices/cpu/cubeqcpu/cubeqcpu.cpp
| r250182 | r250183 | |
| 1044 | 1044 | dsrclatch = |
| 1045 | 1045 | (~(0x10 << dsrc) & 0xf0) |
| 1046 | 1046 | | (rsrc ? 0x04 : 0x02) |
| 1047 | | | !(spf == SPF_SWRT); |
| 1047 | | (spf == SPF_SWRT ? 0 : 1); |
| 1048 | 1048 | |
| 1049 | 1049 | /* R-latch is written on rising edge of dsrclatch bit 2 */ |
| 1050 | 1050 | if (!_BIT(m_dsrclatch, 2) && _BIT(dsrclatch, 2)) |
| r250182 | r250183 | |
| 1492 | 1492 | } |
| 1493 | 1493 | |
| 1494 | 1494 | m_fglatch = |
| 1495 | | (!(latch == LLATCH_FADLATCH) << 5) |
| 1495 | (latch == LLATCH_FADLATCH ? 0 : (1 << 5)) |
| 1496 | 1496 | | (dowrt << 4) |
| 1497 | 1497 | | (start_stop << 3) |
| 1498 | 1498 | | (_pbcs << 2) |
| 1499 | | | (!(spf == LSPF_BRES) << 1) |
| 1500 | | | !(m_gt0reg && (spf == LSPF_BRES)); |
| 1499 | | (spf == LSPF_BRES ? 0 : (1 << 1)) |
| 1500 | | (m_gt0reg && (spf == LSPF_BRES) ? 0 : 1); |
| 1501 | 1501 | } |
| 1502 | 1502 | else |
| 1503 | 1503 | { |
trunk/src/devices/machine/74181.cpp
| r250182 | r250183 | |
| 76 | 76 | int mp = !m_m; |
| 77 | 77 | |
| 78 | 78 | // intermediate calculations |
| 79 | | int ap0 = !(a0 | (b0 & s0) | (s1 & !b0)); |
| 79 | int ap0 = !(a0 | (b0 & s0) | (s1 & ~b0)); |
| 80 | 80 | int bp0 = !(((!b0) & s2 & a0) | (a0 & b0 & s3)); |
| 81 | | int ap1 = !(a1 | (b1 & s0) | (s1 & !b1)); |
| 81 | int ap1 = !(a1 | (b1 & s0) | (s1 & ~b1)); |
| 82 | 82 | int bp1 = !(((!b1) & s2 & a1) | (a1 & b1 & s3)); |
| 83 | | int ap2 = !(a2 | (b2 & s0) | (s1 & !b2)); |
| 83 | int ap2 = !(a2 | (b2 & s0) | (s1 & ~b2)); |
| 84 | 84 | int bp2 = !(((!b2) & s2 & a2) | (a2 & b2 & s3)); |
| 85 | | int ap3 = !(a3 | (b3 & s0) | (s1 & !b3)); |
| 85 | int ap3 = !(a3 | (b3 & s0) | (s1 & ~b3)); |
| 86 | 86 | int bp3 = !(((!b3) & s2 & a3) | (a3 & b3 & s3)); |
| 87 | 87 | |
| 88 | 88 | int fp0 = !(m_c & mp) ^ ((!ap0) & bp0); |
trunk/src/devices/machine/i8279.cpp
| r250182 | r250183 | |
| 134 | 134 | for (i = 0; i < 8; i++) m_s_ram[i] = 0; |
| 135 | 135 | for (i = 0; i < 16; i++) m_d_ram[i] = 0; |
| 136 | 136 | m_status = 0; |
| 137 | | m_autoinc = 1; |
| 137 | m_autoinc = true; |
| 138 | 138 | m_d_ram_ptr = 0; |
| 139 | 139 | m_s_ram_ptr = 0; |
| 140 | 140 | m_read_flag = 0; |
| r250182 | r250183 | |
| 374 | 374 | // read the display ram |
| 375 | 375 | data = m_d_ram[m_d_ram_ptr]; |
| 376 | 376 | if (m_autoinc) |
| 377 | { |
| 377 | 378 | m_d_ram_ptr++; |
| 379 | } |
| 378 | 380 | } |
| 379 | 381 | else |
| 380 | 382 | if (sensor_mode) |
| r250182 | r250183 | |
| 383 | 385 | assert(m_s_ram_ptr < ARRAY_LENGTH(m_s_ram)); |
| 384 | 386 | data = m_s_ram[m_s_ram_ptr]; |
| 385 | 387 | if (m_autoinc) |
| 388 | { |
| 386 | 389 | m_s_ram_ptr++; |
| 390 | } |
| 387 | 391 | else |
| 392 | { |
| 388 | 393 | set_irq(0); |
| 394 | } |
| 389 | 395 | } |
| 390 | 396 | else |
| 391 | 397 | { |
| r250182 | r250183 | |
| 471 | 477 | |
| 472 | 478 | WRITE8_MEMBER( i8279_device::data_w ) |
| 473 | 479 | {//printf("Data: %X ",data); |
| 474 | | if (BIT(m_cmd[0], 4) & m_autoinc) |
| 480 | if (BIT(m_cmd[0], 4) && m_autoinc) |
| 475 | 481 | { |
| 476 | 482 | // right-entry autoincrement not implemented yet |
| 477 | 483 | } |
trunk/src/devices/machine/tc009xlvc.cpp
| r250182 | r250183 | |
| 264 | 264 | if(!m_gfxdecode->started()) |
| 265 | 265 | throw device_missing_dependencies(); |
| 266 | 266 | |
| 267 | | memset(m_palette_ram, 0, sizeof(m_palette_ram)); |
| 268 | | memset(m_vregs, 0, sizeof(UINT8) * 0x100); |
| 269 | | memset(m_bitmap_ram, 0, sizeof(UINT8) * 0x20000); |
| 270 | | memset(m_pcg_ram, 0, sizeof(UINT8) * 0x10000); |
| 271 | | memset(m_sprram_buffer, 0, sizeof(UINT8) * 0x400); |
| 267 | memset(m_palette_ram, 0, ARRAY_LENGTH(m_palette_ram)); |
| 268 | memset(m_vregs, 0, ARRAY_LENGTH(m_vregs)); |
| 269 | memset(m_bitmap_ram, 0, ARRAY_LENGTH(m_bitmap_ram)); |
| 270 | memset(m_pcg_ram, 0, ARRAY_LENGTH(m_pcg_ram)); |
| 271 | memset(m_sprram_buffer, 0, ARRAY_LENGTH(m_sprram_buffer)); |
| 272 | 272 | |
| 273 | 273 | // note, the way tiles are addressed suggests that 0x0000-0x3fff of this might be usable, |
| 274 | 274 | // but we don't map it anywhere, so the first tiles are always blank at the moment. |
trunk/src/devices/sound/votrax.cpp
| r250182 | r250183 | |
| 520 | 520 | if (LOG_TIMING) |
| 521 | 521 | osd_printf_debug("%4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X %4X ", m_master_clock, m_counter_34, m_latch_70, m_latch_72, m_beta1, m_p1, m_p2, m_phi1, m_phi2, m_phi1_20, m_phi2_20, m_subphoneme_count, m_clock_88, m_counter_84, m_latch_92, m_internal_request); |
| 522 | 522 | if (LOG_LOWPARAM) |
| 523 | | osd_printf_debug("%4X %4X %4X %4X %4X ", m_srff_132, m_srff_114, m_srff_112, m_srff_142, m_latch_80); |
| 523 | osd_printf_debug("%d %d %d %d %d ", m_srff_132, m_srff_114, m_srff_112, m_srff_142, m_latch_80); |
| 524 | 524 | if (LOG_GLOTTAL) |
| 525 | 525 | osd_printf_debug("%4X %4X %4X %4X %4X %4X %4X ", m_counter_220, m_counter_222, m_counter_224, m_counter_234, m_counter_236, m_fgate, m_glottal_sync); |
| 526 | 526 | if (LOG_TRANSITION) |
| r250182 | r250183 | |
| 651 | 651 | { |
| 652 | 652 | // if the request line was previously low, reset the VD/CLD flip-flops |
| 653 | 653 | if (m_internal_request == CLEAR_LINE) |
| 654 | | m_srff_112 = m_srff_114 = 0; |
| 654 | { |
| 655 | m_srff_112 = m_srff_114 = false; |
| 656 | } |
| 655 | 657 | m_internal_request = ASSERT_LINE; |
| 656 | 658 | } |
| 657 | 659 | |
| r250182 | r250183 | |
| 684 | 686 | { |
| 685 | 687 | // update CL |
| 686 | 688 | case 3: |
| 687 | | m_srff_132 = m_srff_114 & BIT(~romdata, 3); |
| 689 | m_srff_132 = m_srff_114 && BIT(~romdata, 3); |
| 688 | 690 | break; |
| 689 | 691 | |
| 690 | 692 | // update CLD |
| 691 | 693 | case 4: |
| 692 | 694 | romdata_swapped = (BIT(romdata, 0) << 3) | (BIT(romdata, 1) << 2) | (BIT(romdata, 2) << 1) | (BIT(romdata, 3) << 0); |
| 693 | 695 | if (m_counter_84 != 0 && romdata_swapped == (m_counter_84 ^ 0xf)) |
| 694 | | m_srff_114 = 1; |
| 696 | { |
| 697 | m_srff_114 = true; |
| 698 | } |
| 695 | 699 | break; |
| 696 | 700 | |
| 697 | 701 | // update VD |
| 698 | 702 | case 5: |
| 699 | 703 | romdata_swapped = (BIT(romdata, 0) << 3) | (BIT(romdata, 1) << 2) | (BIT(romdata, 2) << 1) | (BIT(romdata, 3) << 0); |
| 700 | 704 | if (m_counter_84 != 0 && romdata_swapped == (m_counter_84 ^ 0xf)) |
| 701 | | m_srff_112 = 1; |
| 705 | { |
| 706 | m_srff_112 = true; |
| 707 | } |
| 702 | 708 | break; |
| 703 | 709 | |
| 704 | 710 | // update FF == PAC & (VA | FA) |
| r250182 | r250183 | |
| 840 | 846 | // write if not FF and low 2 bits of latch |
| 841 | 847 | // FF is the S/R flip-flop at 142 ANDed with !(/FA & /VA) |
| 842 | 848 | case 0: case 1: case 2: case 3: case 4: |
| 843 | | if (!(m_srff_142 & !((m_fa == 0) & (m_va == 0))) && (m_latch_46 & 0x3) == 0x3) |
| 849 | if ((m_srff_142 && !((m_fa == 0) && (m_va == 0))) == 0 && (m_latch_46 & 0x3) == 0x3) |
| 844 | 850 | ram_write = 1; |
| 845 | 851 | break; |
| 846 | 852 | |
| 847 | 853 | case 5: |
| 848 | 854 | if ((m_latch_46 & 0xc) == 0xc && m_srff_112) |
| 855 | { |
| 849 | 856 | ram_write = 1; |
| 857 | } |
| 850 | 858 | break; |
| 851 | 859 | |
| 852 | 860 | case 6: |
| 853 | 861 | if ((m_latch_46 & 0xc) == 0xc && m_srff_114) |
| 862 | { |
| 854 | 863 | ram_write = 1; |
| 864 | } |
| 855 | 865 | break; |
| 856 | 866 | } |
| 857 | 867 | |
| r250182 | r250183 | |
| 1244 | 1254 | m_latch_92 = 0; |
| 1245 | 1255 | |
| 1246 | 1256 | // reset low parameter clocking |
| 1247 | | m_srff_132 = 0; |
| 1248 | | m_srff_114 = 0; |
| 1249 | | m_srff_112 = 0; |
| 1250 | | m_srff_142 = 0; |
| 1257 | m_srff_132 = false; |
| 1258 | m_srff_114 = false; |
| 1259 | m_srff_112 = false; |
| 1260 | m_srff_142 = false; |
| 1251 | 1261 | m_latch_80 = 50; |
| 1252 | 1262 | update_subphoneme_clock_period(); |
| 1253 | 1263 | |
trunk/src/devices/sound/votrax.h
| r250182 | r250183 | |
| 98 | 98 | UINT8 m_latch_92; // 2-bit latch @ 92 |
| 99 | 99 | |
| 100 | 100 | // low parameter clocking |
| 101 | | UINT8 m_srff_132; // S/R flip-flop @ 132 |
| 102 | | UINT8 m_srff_114; // S/R flip-flop @ 114 |
| 103 | | UINT8 m_srff_112; // S/R flip-flop @ 112 |
| 104 | | UINT8 m_srff_142; // S/R flip-flop @ 142 |
| 101 | bool m_srff_132; // S/R flip-flop @ 132 |
| 102 | bool m_srff_114; // S/R flip-flop @ 114 |
| 103 | bool m_srff_112; // S/R flip-flop @ 112 |
| 104 | bool m_srff_142; // S/R flip-flop @ 142 |
| 105 | 105 | UINT8 m_latch_80; // phoneme timing latch @ 80 |
| 106 | 106 | |
| 107 | 107 | // glottal circuit |
trunk/src/mame/drivers/gstream.cpp
| r250182 | r250183 | |
| 346 | 346 | |
| 347 | 347 | */ |
| 348 | 348 | |
| 349 | | m_oki_bank_1 = ((BIT(data, 6) & !BIT(data, 7)) << 1) | (BIT(data, 2) & BIT(data, 3)); |
| 350 | | m_oki_bank_2 = ((BIT(data, 4) & !BIT(data, 5)) << 1) | (BIT(data, 0) & BIT(data, 1)); |
| 349 | m_oki_bank_1 = ((BIT(data, 6) & ~BIT(data, 7)) << 1) | (BIT(data, 2) & BIT(data, 3)); |
| 350 | m_oki_bank_2 = ((BIT(data, 4) & ~BIT(data, 5)) << 1) | (BIT(data, 0) & BIT(data, 1)); |
| 351 | 351 | |
| 352 | 352 | //popmessage("oki bank = %X\noki_1 = %X\noki_2 = %X\n",data, m_oki_bank_1, m_oki_bank_2); |
| 353 | 353 | |
trunk/src/mame/machine/sorcerer.cpp
| r250182 | r250183 | |
| 188 | 188 | bool sound = BIT(m_iop_config->read(), 3); |
| 189 | 189 | |
| 190 | 190 | m_cassette1->change_state( |
| 191 | | (BIT(data,4) & sound) ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED, CASSETTE_MASK_SPEAKER); |
| 191 | (BIT(data,4) && sound) ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED, CASSETTE_MASK_SPEAKER); |
| 192 | 192 | |
| 193 | 193 | m_cassette2->change_state( |
| 194 | | (BIT(data,5) & sound) ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED, CASSETTE_MASK_SPEAKER); |
| 194 | (BIT(data,5) && sound) ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED, CASSETTE_MASK_SPEAKER); |
| 195 | 195 | |
| 196 | 196 | /* cassette 1 motor */ |
| 197 | 197 | m_cassette1->change_state( |
trunk/src/mame/video/cosmic.cpp
| r250182 | r250183 | |
| 469 | 469 | if (((!vb_) & vc_ & (!vd_)) ^ (vb_ & (!vc_) & vd_)) |
| 470 | 470 | { |
| 471 | 471 | /* tree */ |
| 472 | | if ((!hd_) & hc_ & (!hb_)) |
| 472 | if (!hd_ && hc_ && !hb_) |
| 473 | 473 | { |
| 474 | 474 | offs_t offs = ((x >> 3) & 0x03) | ((y & 0x1f) << 2) | |
| 475 | 475 | (flip_screen() ? 0x80 : 0); |
| r250182 | r250183 | |
| 482 | 482 | |
| 483 | 483 | color = (plane1 & plane2) | // R |
| 484 | 484 | (plane2 ) << 1 | // G |
| 485 | | (plane1 & !plane2) << 2; // B |
| 485 | (plane1 & ~plane2) << 2; // B |
| 486 | 486 | } |
| 487 | 487 | } |
| 488 | 488 | else |
| 489 | 489 | { |
| 490 | 490 | /* water */ |
| 491 | | if (hd_ & !hc_ & hb_ & !ha_) |
| 491 | if (hd_ && !hc_ && hb_ && !ha_) |
| 492 | 492 | { |
| 493 | 493 | offs_t offs = hd | (water << 1) | 0x0200; |
| 494 | 494 | |
trunk/src/mame/video/mikromik.cpp
| r250182 | r250183 | |
| 36 | 36 | // Step 3: Fill in missing 2 pixels in the screen bitmap by repeating last column of the char bitmap |
| 37 | 37 | // (works better with MikroMikko 1 font than duplicating the first and the last column) |
| 38 | 38 | qh = d7 & d6; // extend pixels on the right side only if there were two adjacent ones before shifting out the MSB |
| 39 | | video_in = ((((d7 & llen) | !vsp) & !gpa0) & qh) | lten; |
| 40 | | color = (hlt_in ? 1 : 2)*(video_in ^ compl_in); |
| 39 | video_in = ((((d7 & llen) | (vsp ? 0 : 1)) & (gpa0 ? 0 : 1)) & qh) | lten; |
| 40 | color = (hlt_in ? 1 : 2) * (video_in ^ compl_in); |
| 41 | 41 | bitmap.pix32(y, x + 8) = m_palette->pen(color); |
| 42 | 42 | bitmap.pix32(y, x + 9) = m_palette->pen(color); |
| 43 | 43 | } |
| r250182 | r250183 | |
| 45 | 45 | for (i = 0; i < 8; ++i) // ...and now the actual character bitmap bits for this scanline |
| 46 | 46 | { |
| 47 | 47 | qh = BIT(data, i); |
| 48 | | video_in = ((((d7 & llen) | !vsp) & !gpa0) & qh) | lten; |
| 48 | video_in = ((((d7 & llen) | (vsp ? 0 : 1)) & (gpa0 ? 0 : 1)) & qh) | lten; |
| 49 | 49 | color = (hlt_in ? 1 : 2)*(video_in ^ compl_in); |
| 50 | 50 | bitmap.pix32(y, x + i) = m_palette->pen(color); |
| 51 | 51 | } |