trunk/src/mess/machine/wangpc_tig.c
| r19500 | r19501 | |
| 140 | 140 | |
| 141 | 141 | MCFG_PALETTE_LENGTH(3) |
| 142 | 142 | |
| 143 | | MCFG_UPD7220_ADD(UPD7720_0_TAG, XTAL_52_832MHz/10, hgdc0_intf, upd7220_0_map) |
| 144 | | MCFG_UPD7220_ADD(UPD7720_1_TAG, XTAL_52_832MHz/16, hgdc1_intf, upd7220_1_map) |
| 143 | MCFG_UPD7220_ADD(UPD7720_0_TAG, XTAL_52_832MHz/28, hgdc0_intf, upd7220_0_map) // was /10? |
| 144 | MCFG_UPD7220_ADD(UPD7720_1_TAG, XTAL_52_832MHz/28, hgdc1_intf, upd7220_1_map) // was /16? |
| 145 | 145 | MACHINE_CONFIG_END |
| 146 | 146 | |
| 147 | 147 | |
trunk/src/mess/video/upd7220.c
| r19500 | r19501 | |
| 27 | 27 | - QX-10 diagnostic test has positioning bugs with the bitmap display test; |
| 28 | 28 | - QX-10 diagnostic test misses the zooming factor (external pin); |
| 29 | 29 | - compis2 SAD address for bitmap is 0x20000 for whatever reason (presumably missing banking); |
| 30 | | - A5105 has a FIFO bug with the RDAT, should be a lot larger when it scrolls up; |
| 30 | - A5105 has a FIFO bug with the RDAT, should be a lot larger when it scrolls up. |
| 31 | The problem is that DMA-ing with RDAT/WDAT shouldn't be instant; |
| 31 | 32 | |
| 32 | 33 | - honor visible area |
| 33 | 34 | - wide mode (32-bit access) |
| r19500 | r19501 | |
| 391 | 392 | |
| 392 | 393 | inline void upd7220_device::recompute_parameters() |
| 393 | 394 | { |
| 394 | | int horiz_pix_total = (m_hs + m_hbp + m_aw + m_hfp) * 8; |
| 395 | /* TODO: assume that the pitch also controls number of horizontal pixels in a single cell */ |
| 396 | int horiz_mult = ((m_pitch == 40) ? 16 : 8); |
| 397 | int horiz_pix_total = (m_hs + m_hbp + m_aw + m_hfp) * horiz_mult; |
| 395 | 398 | int vert_pix_total = m_vs + m_vbp + m_al + m_vfp; |
| 396 | 399 | |
| 397 | 400 | //printf("%d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp); |
| r19500 | r19501 | |
| 400 | 403 | if (horiz_pix_total == 0 || vert_pix_total == 0) //bail out if screen params aren't valid |
| 401 | 404 | return; |
| 402 | 405 | |
| 403 | | attoseconds_t refresh = HZ_TO_ATTOSECONDS(60); //HZ_TO_ATTOSECONDS(clock() * 8) * horiz_pix_total * vert_pix_total; |
| 406 | attoseconds_t refresh = HZ_TO_ATTOSECONDS(clock() * horiz_mult) * horiz_pix_total * vert_pix_total; |
| 404 | 407 | |
| 405 | 408 | rectangle visarea; |
| 406 | 409 | |
| 407 | 410 | visarea.min_x = 0; //(m_hs + m_hbp) * 8; |
| 408 | 411 | visarea.min_y = 0; //m_vs + m_vbp; |
| 409 | | visarea.max_x = m_aw * 8 - 1;//horiz_pix_total - (m_hfp * 8) - 1; |
| 412 | visarea.max_x = m_aw * horiz_mult - 1;//horiz_pix_total - (m_hfp * 8) - 1; |
| 410 | 413 | visarea.max_y = m_al - 1;//vert_pix_total - m_vfp - 1; |
| 411 | 414 | |
| 412 | 415 | |
| 413 | | if (LOG) |
| 416 | if (0) |
| 414 | 417 | { |
| 415 | 418 | printf("uPD7220 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); |
| 416 | 419 | printf("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); |
| 420 | printf("%d %d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp,m_pitch); |
| 417 | 421 | printf("%d %d %d %d\n",m_vs,m_vbp,m_al,m_vfp); |
| 418 | 422 | } |
| 419 | 423 | |
trunk/src/mess/drivers/dmv.c
| r19500 | r19501 | |
| 325 | 325 | MCFG_DEFAULT_LAYOUT(layout_dmv) |
| 326 | 326 | |
| 327 | 327 | // devices |
| 328 | | MCFG_UPD7220_ADD( "upd7220", XTAL_4MHz, hgdc_intf, upd7220_map ) |
| 328 | MCFG_UPD7220_ADD( "upd7220", XTAL_5MHz/2, hgdc_intf, upd7220_map ) // unk clock |
| 329 | 329 | MCFG_I8237_ADD( "dma8237", XTAL_4MHz, dmv_dma8237_config ) |
| 330 | 330 | MCFG_UPD765A_ADD( "upd765", true, true ) |
| 331 | 331 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", dmv_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) |
trunk/src/mess/drivers/pc9801.c
| r19500 | r19501 | |
| 54 | 54 | "can't use (this) on a vanilla PC-9801, a PC-9801E nor a PC-9801U. Please turn off the computer and turn it on again." |
| 55 | 55 | - Alice no Yakata: wants a "DSW 1-8" on. |
| 56 | 56 | - Animahjong V3: accesses port 0x88; |
| 57 | | - Anniversary - Memories of Summer: thinks that a button is pressed, has window masking bugs during intro; |
| 57 | - Anniversary - Memories of Summer: thinks that a button is pressed; |
| 58 | 58 | - Another Genesis: fails loading; |
| 59 | 59 | - Apple Club 1: how to pass an hand? |
| 60 | 60 | (Applesauce Pirates) |
| 61 | 61 | |
| 62 | | - Brandish 2: Intro needs some window masking effects (or not?); |
| 63 | 62 | - Dragon Buster: slight issue with window masking; |
| 64 | 63 | - Far Side Moon: doesn't detect sound board (tied to 0x00ec ports) |
| 65 | 64 | - Jan Borg Suzume: gets stuck at a pic8259 read; |
| r19500 | r19501 | |
| 721 | 720 | knj_tile = state->m_video_ram_1[(tile_addr*2+1) & 0x1fff] & 0xff; |
| 722 | 721 | if(knj_tile) |
| 723 | 722 | { |
| 724 | | /* Note: lr doesn't really count, if a kanji is enabled then the successive tile is always the second part of it. |
| 723 | /* Note: bit 7 doesn't really count, if a kanji is enabled then the successive tile is always the second part of it. |
| 725 | 724 | Trusted with Alice no Yakata, Animahjong V3, Aki no Tsukasa no Fushigi no Kabe, Apros ... |
| 726 | 725 | */ |
| 727 | 726 | //kanji_lr = (knj_tile & 0x80) >> 7; |
trunk/src/mess/drivers/qx10.c
| r19500 | r19501 | |
| 1040 | 1040 | MCFG_I8255_ADD("i8255", qx10_i8255_interface) |
| 1041 | 1041 | MCFG_I8237_ADD("8237dma_1", MAIN_CLK/4, qx10_dma8237_1_interface) |
| 1042 | 1042 | MCFG_I8237_ADD("8237dma_2", MAIN_CLK/4, qx10_dma8237_2_interface) |
| 1043 | | MCFG_UPD7220_ADD("upd7220", MAIN_CLK/4, hgdc_intf, upd7220_map) |
| 1043 | MCFG_UPD7220_ADD("upd7220", MAIN_CLK/6, hgdc_intf, upd7220_map) // unk clock |
| 1044 | 1044 | MCFG_MC146818_ADD( "rtc", MC146818_STANDARD ) |
| 1045 | 1045 | MCFG_UPD765A_ADD("upd765", true, true) |
| 1046 | 1046 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", qx10_floppies, "525dd", 0, floppy_image_device::default_floppy_formats) |
trunk/src/mess/drivers/apc.c
| r19500 | r19501 | |
| 1042 | 1042 | |
| 1043 | 1043 | MCFG_GFXDECODE(apc) |
| 1044 | 1044 | |
| 1045 | | MCFG_UPD7220_ADD("upd7220_chr", 5000000/2, hgdc_1_intf, upd7220_1_map) |
| 1046 | | MCFG_UPD7220_ADD("upd7220_btm", 5000000/2, hgdc_2_intf, upd7220_2_map) |
| 1045 | MCFG_UPD7220_ADD("upd7220_chr", XTAL_3_579545MHz, hgdc_1_intf, upd7220_1_map) // unk clock |
| 1046 | MCFG_UPD7220_ADD("upd7220_btm", XTAL_3_579545MHz, hgdc_2_intf, upd7220_2_map) // unk clock |
| 1047 | 1047 | |
| 1048 | 1048 | MCFG_PALETTE_LENGTH(16) |
| 1049 | 1049 | MCFG_PALETTE_INIT_OVERRIDE(apc_state,apc) |
trunk/src/mess/drivers/compis.c
| r19500 | r19501 | |
| 376 | 376 | MCFG_PIC8259_ADD( "pic8259_master", compis_pic8259_master_config ) |
| 377 | 377 | MCFG_PIC8259_ADD( "pic8259_slave", compis_pic8259_slave_config ) |
| 378 | 378 | MCFG_I8255_ADD( "ppi8255", compis_ppi_interface ) |
| 379 | | MCFG_UPD7220_ADD("upd7220", XTAL_4MHz, hgdc_intf, upd7220_map) //unknown clock |
| 379 | MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock |
| 380 | 380 | MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) |
| 381 | 381 | MCFG_I8251_ADD("uart", compis_usart_interface) |
| 382 | 382 | MCFG_MM58274C_ADD("mm58274c", compis_mm58274c_interface) |
| r19500 | r19501 | |
| 416 | 416 | MCFG_PIC8259_ADD( "pic8259_master", compis_pic8259_master_config ) |
| 417 | 417 | MCFG_PIC8259_ADD( "pic8259_slave", compis_pic8259_slave_config ) |
| 418 | 418 | MCFG_I8255_ADD( "ppi8255", compis_ppi_interface ) |
| 419 | | MCFG_UPD7220_ADD("upd7220", XTAL_4MHz, hgdc_intf, upd7220_map) //unknown clock |
| 419 | MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock |
| 420 | 420 | MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) |
| 421 | 421 | MCFG_I8251_ADD("uart", compis_usart_interface) |
| 422 | 422 | MCFG_MM58274C_ADD("mm58274c", compis_mm58274c_interface) |
trunk/src/mess/drivers/a5105.c
| r19500 | r19501 | |
| 130 | 130 | res_x = x * 8 + xi; |
| 131 | 131 | res_y = y * lr + yi; |
| 132 | 132 | |
| 133 | | if(!device->machine().primary_screen->visible_area().contains(res_x, res_y)) |
| 133 | if(yi >= 8) { pen = 0; } |
| 134 | |
| 135 | /* TODO: pitch is currently 40, this should actually go in the upd7220 device */ |
| 136 | if(!device->machine().primary_screen->visible_area().contains(res_x*2+0, res_y)) |
| 134 | 137 | continue; |
| 135 | 138 | |
| 136 | | if(yi >= 8) { pen = 0; } |
| 139 | bitmap.pix32(res_y, res_x*2+0) = palette[pen]; |
| 137 | 140 | |
| 138 | | bitmap.pix32(res_y, res_x) = palette[pen]; |
| 141 | if(!device->machine().primary_screen->visible_area().contains(res_x*2+1, res_y)) |
| 142 | continue; |
| 143 | |
| 144 | bitmap.pix32(res_y, res_x*2+1) = palette[pen]; |
| 139 | 145 | } |
| 140 | 146 | } |
| 141 | 147 | } |
| r19500 | r19501 | |
| 599 | 605 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 600 | 606 | |
| 601 | 607 | /* Devices */ |
| 602 | | MCFG_UPD7220_ADD("upd7220", XTAL_15MHz, hgdc_intf, upd7220_map) |
| 608 | MCFG_UPD7220_ADD("upd7220", XTAL_15MHz / 16, hgdc_intf, upd7220_map) // unk clock |
| 603 | 609 | MCFG_Z80CTC_ADD( "z80ctc", XTAL_15MHz / 4, a5105_ctc_intf ) |
| 604 | 610 | MCFG_Z80PIO_ADD( "z80pio", XTAL_15MHz / 4, a5105_pio_intf ) |
| 605 | 611 | |
trunk/src/mess/drivers/mz6500.c
| r19500 | r19501 | |
| 140 | 140 | |
| 141 | 141 | static MACHINE_CONFIG_START( mz6500, mz6500_state ) |
| 142 | 142 | /* basic machine hardware */ |
| 143 | | MCFG_CPU_ADD("maincpu", I8086, 4000000) //unk clock |
| 143 | MCFG_CPU_ADD("maincpu", I8086, 8000000) //unk clock |
| 144 | 144 | MCFG_CPU_PROGRAM_MAP(mz6500_map) |
| 145 | 145 | MCFG_CPU_IO_MAP(mz6500_io) |
| 146 | 146 | |
| r19500 | r19501 | |
| 155 | 155 | MCFG_PALETTE_LENGTH(8) |
| 156 | 156 | |
| 157 | 157 | /* Devices */ |
| 158 | | MCFG_UPD7220_ADD("upd7220", 4000000, hgdc_intf, upd7220_map) |
| 158 | MCFG_UPD7220_ADD("upd7220", 8000000/6, hgdc_intf, upd7220_map) // unk clock |
| 159 | 159 | MCFG_UPD765A_ADD("upd765", true, true) |
| 160 | 160 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", mz6500_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |
| 161 | 161 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", mz6500_floppies, "525hd", 0, floppy_image_device::default_floppy_formats) |