trunk/src/mame/drivers/overdriv.c
| r242673 | r242674 | |
| 274 | 274 | static MACHINE_CONFIG_START( overdriv, overdriv_state ) |
| 275 | 275 | |
| 276 | 276 | /* basic machine hardware */ |
| 277 | | MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ |
| 277 | MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ |
| 278 | 278 | MCFG_CPU_PROGRAM_MAP(overdriv_master_map) |
| 279 | 279 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", overdriv_state, overdriv_cpuA_scanline, "screen", 0, 1) |
| 280 | 280 | |
| 281 | | MCFG_CPU_ADD("sub", M68000, XTAL_24MHz/2) /* 12 MHz */ |
| 281 | MCFG_CPU_ADD("sub", M68000,24000000/2) /* 12 MHz */ |
| 282 | 282 | MCFG_CPU_PROGRAM_MAP(overdriv_slave_map) |
| 283 | 283 | MCFG_CPU_VBLANK_INT_DRIVER("screen", overdriv_state, cpuB_interrupt) /* IRQ 5 and 6 are generated by the main CPU. */ |
| 284 | 284 | /* IRQ 5 is used only in test mode, to request the checksums of the gfx ROMs. */ |
| 285 | 285 | |
| 286 | | MCFG_CPU_ADD("audiocpu", M6809, XTAL_3_579545MHz) /* 1.789 MHz?? This might be the right speed, but ROM testing */ |
| 286 | MCFG_CPU_ADD("audiocpu", M6809,3579545) /* 1.789 MHz?? This might be the right speed, but ROM testing */ |
| 287 | 287 | MCFG_CPU_PROGRAM_MAP(overdriv_sound_map) /* takes a little too much (the counter wraps from 0000 to 9999). */ |
| 288 | 288 | /* This might just mean that the video refresh rate is less than */ |
| 289 | 289 | /* 60 fps, that's how I fixed it for now. */ |
| r242673 | r242674 | |
| 330 | 330 | MCFG_K053250_ADD("k053250_1", "palette", "screen", 0, 0) |
| 331 | 331 | MCFG_K053250_ADD("k053250_2", "palette", "screen", 0, 0) |
| 332 | 332 | |
| 333 | | MCFG_DEVICE_ADD("k053252", K053252, XTAL_24MHz/4) |
| 333 | MCFG_DEVICE_ADD("k053252", K053252, 24000000/4) |
| 334 | 334 | MCFG_K053252_OFFSETS(13*8, 2*8) |
| 335 | 335 | |
| 336 | 336 | /* sound hardware */ |
| 337 | 337 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 338 | 338 | |
| 339 | | MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) |
| 339 | MCFG_YM2151_ADD("ymsnd", 3579545) |
| 340 | 340 | MCFG_SOUND_ROUTE(0, "lspeaker", 0.5) |
| 341 | 341 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.5) |
| 342 | 342 | |
| 343 | | MCFG_K053260_ADD("k053260_1", XTAL_3_579545MHz) |
| 343 | MCFG_K053260_ADD("k053260_1", 3579545) |
| 344 | 344 | MCFG_K053260_REGION("shared") |
| 345 | 345 | MCFG_SOUND_ROUTE(0, "lspeaker", 0.35) |
| 346 | 346 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.35) |
| 347 | 347 | |
| 348 | | MCFG_K053260_ADD("k053260_2", XTAL_3_579545MHz) |
| 348 | MCFG_K053260_ADD("k053260_2", 3579545) |
| 349 | 349 | MCFG_K053260_REGION("shared") |
| 350 | 350 | MCFG_SOUND_ROUTE(0, "lspeaker", 0.35) |
| 351 | 351 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.35) |
| r242673 | r242674 | |
| 361 | 361 | |
| 362 | 362 | ROM_START( overdriv ) |
| 363 | 363 | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 364 | | ROM_LOAD16_BYTE( "789_n05.d17", 0x00000, 0x20000, CRC(f7885713) SHA1(8e84929dcc6ab889c3e11c450d22c56b183b0198) ) |
| 365 | | ROM_LOAD16_BYTE( "789_n04.b17", 0x00001, 0x20000, CRC(aefe87a6) SHA1(1bdf5a1f4c5e2b84d02b2981b3be91ed2406a1f8) ) |
| 364 | ROM_LOAD16_BYTE( "789.2", 0x00000, 0x20000, CRC(77f18f3f) SHA1(a8c91435573c7851a7864d07eeacfb2f142abbe2) ) |
| 365 | ROM_LOAD16_BYTE( "789.1", 0x00001, 0x20000, CRC(4f44e6ad) SHA1(9fa871f55e6b2ec353dd979ded568cd9da83f5d6) ) |
| 366 | 366 | |
| 367 | 367 | ROM_REGION( 0x40000, "sub", 0 ) |
| 368 | | ROM_LOAD16_BYTE( "789_e09.l10", 0x00000, 0x20000, CRC(46fb7e88) SHA1(f706a76aff9bec64abe6da325cba0715d6e6ed0a) ) /* also found labeled as "4" as well as "7" */ |
| 369 | | ROM_LOAD16_BYTE( "789_e08.k10", 0x00001, 0x20000, CRC(24427195) SHA1(48f4f81729acc0e497b40fddbde11242c5c4c573) ) /* also found labeled as "3" as well as "6" */ |
| 368 | ROM_LOAD16_BYTE( "789.4", 0x00000, 0x20000, CRC(46fb7e88) SHA1(f706a76aff9bec64abe6da325cba0715d6e6ed0a) ) |
| 369 | ROM_LOAD16_BYTE( "789.3", 0x00001, 0x20000, CRC(24427195) SHA1(48f4f81729acc0e497b40fddbde11242c5c4c573) ) |
| 370 | 370 | |
| 371 | 371 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 372 | | ROM_LOAD( "789_e01.e4", 0x00000, 0x10000, CRC(1085f069) SHA1(27228cedb357ff2e130a4bd6d8aa01cf537e034f) ) /* also found labeled as "5" */ |
| 372 | ROM_LOAD( "789.5", 0x00000, 0x10000, CRC(1085f069) SHA1(27228cedb357ff2e130a4bd6d8aa01cf537e034f) ) |
| 373 | 373 | |
| 374 | 374 | ROM_REGION( 0x400000, "gfx1", 0 ) /* graphics (addressable by the CPU) */ |
| 375 | | ROM_LOAD64_WORD( "789e12.r1", 0x000000, 0x100000, CRC(14a10fb2) SHA1(03fb9c15514c5ecc2d9ae4a53961c4bbb49cec73) ) /* sprites */ |
| 376 | | ROM_LOAD64_WORD( "789e13.r4", 0x000002, 0x100000, CRC(6314a628) SHA1(f8a8918998c266109348c77427a7696b503daeb3) ) |
| 377 | | ROM_LOAD64_WORD( "789e14.r10", 0x000004, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) ) |
| 378 | | ROM_LOAD64_WORD( "789e15.r15", 0x000006, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) ) |
| 375 | ROM_LOAD64_WORD( "e12.r1", 0x000000, 0x100000, CRC(14a10fb2) SHA1(03fb9c15514c5ecc2d9ae4a53961c4bbb49cec73) ) /* sprites */ |
| 376 | ROM_LOAD64_WORD( "e13.r4", 0x000002, 0x100000, CRC(6314a628) SHA1(f8a8918998c266109348c77427a7696b503daeb3) ) |
| 377 | ROM_LOAD64_WORD( "e14.r10", 0x000004, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) ) |
| 378 | ROM_LOAD64_WORD( "e15.r15", 0x000006, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) ) |
| 379 | 379 | |
| 380 | 380 | ROM_REGION( 0x020000, "k051316_1", 0 ) |
| 381 | | ROM_LOAD( "789e06.a21", 0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) ) /* zoom/rotate */ |
| 381 | ROM_LOAD( "e06.a21", 0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) ) /* zoom/rotate */ |
| 382 | 382 | |
| 383 | 383 | ROM_REGION( 0x020000, "k051316_2", 0 ) |
| 384 | | ROM_LOAD( "789e07.c23", 0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) ) /* zoom/rotate */ |
| 384 | ROM_LOAD( "e07.c23", 0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) ) /* zoom/rotate */ |
| 385 | 385 | |
| 386 | 386 | ROM_REGION( 0x0c0000, "k053250_1", 0 ) |
| 387 | | ROM_LOAD( "789e18.p22", 0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) ) |
| 388 | | ROM_LOAD( "789e19.r22", 0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) ) |
| 389 | | ROM_LOAD( "789e20.s22", 0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) ) |
| 387 | ROM_LOAD( "e18.p22", 0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) ) |
| 388 | ROM_LOAD( "e19.r22", 0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) ) |
| 389 | ROM_LOAD( "e20.s22", 0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) ) |
| 390 | 390 | |
| 391 | 391 | ROM_REGION( 0x080000, "k053250_2", 0 ) |
| 392 | | ROM_LOAD( "789e17.p17", 0x000000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) ) |
| 393 | | ROM_LOAD( "789e16.p12", 0x040000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) ) |
| 392 | ROM_LOAD( "e17.p17", 0x000000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) ) |
| 393 | ROM_LOAD( "e16.p12", 0x040000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) ) |
| 394 | 394 | |
| 395 | 395 | ROM_REGION( 0x200000, "shared", 0 ) /* 053260 samples */ |
| 396 | | ROM_LOAD( "789e03.j1", 0x000000, 0x100000, CRC(51ebfebe) SHA1(17f0c23189258e801f48d5833fe934e7a48d071b) ) |
| 397 | | ROM_LOAD( "789e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) |
| 396 | ROM_LOAD( "e03.j1", 0x000000, 0x100000, CRC(51ebfebe) SHA1(17f0c23189258e801f48d5833fe934e7a48d071b) ) |
| 397 | ROM_LOAD( "e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) |
| 398 | 398 | ROM_END |
| 399 | 399 | |
| 400 | | ROM_START( overdriva ) |
| 401 | | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 402 | | ROM_LOAD16_BYTE( "2.d17", 0x00000, 0x20000, CRC(77f18f3f) SHA1(a8c91435573c7851a7864d07eeacfb2f142abbe2) ) |
| 403 | | ROM_LOAD16_BYTE( "1.b17", 0x00001, 0x20000, CRC(4f44e6ad) SHA1(9fa871f55e6b2ec353dd979ded568cd9da83f5d6) ) /* also found labeled as "3" */ |
| 404 | | |
| 405 | | ROM_REGION( 0x40000, "sub", 0 ) |
| 406 | | ROM_LOAD16_BYTE( "789_e09.l10", 0x00000, 0x20000, CRC(46fb7e88) SHA1(f706a76aff9bec64abe6da325cba0715d6e6ed0a) ) /* also found labeled as "4" as well as "7" */ |
| 407 | | ROM_LOAD16_BYTE( "789_e08.k10", 0x00001, 0x20000, CRC(24427195) SHA1(48f4f81729acc0e497b40fddbde11242c5c4c573) ) /* also found labeled as "3" as well as "6" */ |
| 408 | | |
| 409 | | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 410 | | ROM_LOAD( "789_e01.e4", 0x00000, 0x10000, CRC(1085f069) SHA1(27228cedb357ff2e130a4bd6d8aa01cf537e034f) ) /* also found labeled as "5" */ |
| 411 | | |
| 412 | | ROM_REGION( 0x400000, "gfx1", 0 ) /* graphics (addressable by the CPU) */ |
| 413 | | ROM_LOAD64_WORD( "789e12.r1", 0x000000, 0x100000, CRC(14a10fb2) SHA1(03fb9c15514c5ecc2d9ae4a53961c4bbb49cec73) ) /* sprites */ |
| 414 | | ROM_LOAD64_WORD( "789e13.r4", 0x000002, 0x100000, CRC(6314a628) SHA1(f8a8918998c266109348c77427a7696b503daeb3) ) |
| 415 | | ROM_LOAD64_WORD( "789e14.r10", 0x000004, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) ) |
| 416 | | ROM_LOAD64_WORD( "789e15.r15", 0x000006, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) ) |
| 417 | | |
| 418 | | ROM_REGION( 0x020000, "k051316_1", 0 ) |
| 419 | | ROM_LOAD( "789e06.a21", 0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) ) /* zoom/rotate */ |
| 420 | | |
| 421 | | ROM_REGION( 0x020000, "k051316_2", 0 ) |
| 422 | | ROM_LOAD( "789e07.c23", 0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) ) /* zoom/rotate */ |
| 423 | | |
| 424 | | ROM_REGION( 0x0c0000, "k053250_1", 0 ) |
| 425 | | ROM_LOAD( "789e18.p22", 0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) ) |
| 426 | | ROM_LOAD( "789e19.r22", 0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) ) |
| 427 | | ROM_LOAD( "789e20.s22", 0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) ) |
| 428 | | |
| 429 | | ROM_REGION( 0x080000, "k053250_2", 0 ) |
| 430 | | ROM_LOAD( "789e17.p17", 0x000000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) ) |
| 431 | | ROM_LOAD( "789e16.p12", 0x040000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) ) |
| 432 | | |
| 433 | | ROM_REGION( 0x200000, "shared", 0 ) /* 053260 samples */ |
| 434 | | ROM_LOAD( "789e03.j1", 0x000000, 0x100000, CRC(51ebfebe) SHA1(17f0c23189258e801f48d5833fe934e7a48d071b) ) |
| 435 | | ROM_LOAD( "789e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) |
| 436 | | ROM_END |
| 437 | | |
| 438 | | ROM_START( overdrivb ) |
| 439 | | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 440 | | ROM_LOAD16_BYTE( "4.d17", 0x00000, 0x20000, CRC(93c8e892) SHA1(fb41bb13787b93f533b962c3119e6b9f61e2f3f3) ) |
| 441 | | ROM_LOAD16_BYTE( "3.b17", 0x00001, 0x20000, CRC(4f44e6ad) SHA1(9fa871f55e6b2ec353dd979ded568cd9da83f5d6) ) /* also found labeled as "1" */ |
| 442 | | |
| 443 | | ROM_REGION( 0x40000, "sub", 0 ) |
| 444 | | ROM_LOAD16_BYTE( "789_e09.l10", 0x00000, 0x20000, CRC(46fb7e88) SHA1(f706a76aff9bec64abe6da325cba0715d6e6ed0a) ) /* also found labeled as "4" as well as "7" */ |
| 445 | | ROM_LOAD16_BYTE( "789_e08.k10", 0x00001, 0x20000, CRC(24427195) SHA1(48f4f81729acc0e497b40fddbde11242c5c4c573) ) /* also found labeled as "3" as well as "6" */ |
| 446 | | |
| 447 | | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 448 | | ROM_LOAD( "789_e01.e4", 0x00000, 0x10000, CRC(1085f069) SHA1(27228cedb357ff2e130a4bd6d8aa01cf537e034f) ) /* also found labeled as "5" */ |
| 449 | | |
| 450 | | ROM_REGION( 0x400000, "gfx1", 0 ) /* graphics (addressable by the CPU) */ |
| 451 | | ROM_LOAD64_WORD( "789e12.r1", 0x000000, 0x100000, CRC(14a10fb2) SHA1(03fb9c15514c5ecc2d9ae4a53961c4bbb49cec73) ) /* sprites */ |
| 452 | | ROM_LOAD64_WORD( "789e13.r4", 0x000002, 0x100000, CRC(6314a628) SHA1(f8a8918998c266109348c77427a7696b503daeb3) ) |
| 453 | | ROM_LOAD64_WORD( "789e14.r10", 0x000004, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) ) |
| 454 | | ROM_LOAD64_WORD( "789e15.r15", 0x000006, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) ) |
| 455 | | |
| 456 | | ROM_REGION( 0x020000, "k051316_1", 0 ) |
| 457 | | ROM_LOAD( "789e06.a21", 0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) ) /* zoom/rotate */ |
| 458 | | |
| 459 | | ROM_REGION( 0x020000, "k051316_2", 0 ) |
| 460 | | ROM_LOAD( "789e07.c23", 0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) ) /* zoom/rotate */ |
| 461 | | |
| 462 | | ROM_REGION( 0x0c0000, "k053250_1", 0 ) |
| 463 | | ROM_LOAD( "789e18.p22", 0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) ) |
| 464 | | ROM_LOAD( "789e19.r22", 0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) ) |
| 465 | | ROM_LOAD( "789e20.s22", 0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) ) |
| 466 | | |
| 467 | | ROM_REGION( 0x080000, "k053250_2", 0 ) |
| 468 | | ROM_LOAD( "789e17.p17", 0x000000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) ) |
| 469 | | ROM_LOAD( "789e16.p12", 0x040000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) ) |
| 470 | | |
| 471 | | ROM_REGION( 0x200000, "shared", 0 ) /* 053260 samples */ |
| 472 | | ROM_LOAD( "789e03.j1", 0x000000, 0x100000, CRC(51ebfebe) SHA1(17f0c23189258e801f48d5833fe934e7a48d071b) ) |
| 473 | | ROM_LOAD( "789e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) |
| 474 | | ROM_END |
| 475 | | |
| 476 | | GAMEL( 1990, overdriv, 0, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv ) |
| 477 | | GAMEL( 1990, overdriva, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv ) |
| 478 | | GAMEL( 1990, overdrivb, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 3)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv ) |
| | No newline at end of file |
| 400 | GAMEL( 1990, overdriv, 0, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv ) |
trunk/src/mess/drivers/hp16500.c
| r242673 | r242674 | |
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | |
| 3 | | Hewlett-Packard HP16500a/b/c Logic Analyzer |
| 3 | Hewlett-Packard HP16500b Logic Analyzer |
| 4 | 4 | |
| 5 | | These are weird, the "a" has more in common with the older 1650/1651 |
| 6 | | than the 16500b. |
| 7 | | |
| 8 | | 16500a rev 00.00: |
| 9 | | MC68000 @ 10 MHz |
| 10 | | MC68A45 CRTC |
| 11 | | FDC9793 floppy controller (WD1793 type) |
| 12 | | TMS9914A GPIB bus interface |
| 13 | | SCN2661 DUART/timer |
| 14 | | |
| 15 | | IRQ1 = VBL, IRQ2 = 20b007, IRQ3 = ?, IRQ4 = 20d000, IRQ5 = 20d007, |
| 16 | | IRQ6 = ?, IRQ7 = ? |
| 17 | | |
| 18 | | 16500a rev 00.02: |
| 19 | | MC68000 @ 10 MHz |
| 20 | | MC68A45 CRTC |
| 21 | | Z0765A08PSC floppy controller (NEC765 type) |
| 22 | | TMS9914A GPIB bus interface |
| 23 | | SCN2661 DUART/timer |
| 24 | | |
| 25 | | 16500b: |
| 26 | 5 | MC68EC030 @ 25 MHz |
| 27 | 6 | |
| 28 | 7 | WD37C65C floppy controller (NEC765 type) |
| r242673 | r242674 | |
| 42 | 21 | |
| 43 | 22 | #include "emu.h" |
| 44 | 23 | #include "cpu/m68000/m68000.h" |
| 45 | | #include "video/mc6845.h" |
| 46 | 24 | |
| 47 | 25 | class hp16500_state : public driver_device |
| 48 | 26 | { |
| r242673 | r242674 | |
| 54 | 32 | |
| 55 | 33 | virtual void video_start(); |
| 56 | 34 | UINT32 screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 57 | | UINT32 screen_update_hp16500a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 58 | 35 | |
| 59 | 36 | required_device<cpu_device> m_maincpu; |
| 60 | 37 | dynamic_array<UINT8> m_vram; |
| r242673 | r242674 | |
| 69 | 46 | DECLARE_WRITE8_MEMBER (val_w); |
| 70 | 47 | DECLARE_READ32_MEMBER(vbl_state_r); |
| 71 | 48 | DECLARE_WRITE32_MEMBER(vbl_ack_w); |
| 72 | | DECLARE_WRITE16_MEMBER(vbl_ack16_w); |
| 73 | 49 | |
| 74 | | DECLARE_WRITE8_MEMBER(pal_ctrl_w); |
| 75 | | DECLARE_WRITE8_MEMBER(pal_r_w); |
| 76 | | DECLARE_WRITE8_MEMBER(pal_g_w); |
| 77 | | DECLARE_WRITE8_MEMBER(pal_b_w); |
| 78 | | |
| 79 | | DECLARE_WRITE16_MEMBER(maskval_w); |
| 80 | | |
| 81 | | DECLARE_WRITE_LINE_MEMBER(vsync_changed); |
| 82 | | MC6845_UPDATE_ROW(crtc_update_row); |
| 83 | | |
| 84 | 50 | INTERRUPT_GEN_MEMBER(vblank); |
| 85 | 51 | |
| 86 | 52 | private: |
| r242673 | r242674 | |
| 97 | 63 | m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); |
| 98 | 64 | } |
| 99 | 65 | |
| 100 | | WRITE16_MEMBER(hp16500_state::vbl_ack16_w) |
| 101 | | { |
| 102 | | m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); |
| 103 | | } |
| 104 | | |
| 105 | | WRITE_LINE_MEMBER( hp16500_state::vsync_changed ) |
| 106 | | { |
| 107 | | if (state) |
| 108 | | { |
| 109 | | m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE); |
| 110 | | } |
| 111 | | } |
| 112 | | |
| 113 | | MC6845_UPDATE_ROW( hp16500_state::crtc_update_row ) |
| 114 | | { |
| 115 | | UINT32 *p = &bitmap.pix32(y); |
| 116 | | int i, pos; |
| 117 | | |
| 118 | | pos = y * 144; |
| 119 | | |
| 120 | | for (i = 0; i < x_count; i++) |
| 121 | | { |
| 122 | | *p++ = m_palette[m_vram[pos+0x00000]]; |
| 123 | | *p++ = m_palette[m_vram[pos+0x10000]]; |
| 124 | | *p++ = m_palette[m_vram[pos+0x20000]]; |
| 125 | | *p++ = m_palette[m_vram[pos+0x30000]]; |
| 126 | | pos++; |
| 127 | | *p++ = m_palette[m_vram[pos+0x00000]]; |
| 128 | | *p++ = m_palette[m_vram[pos+0x10000]]; |
| 129 | | *p++ = m_palette[m_vram[pos+0x20000]]; |
| 130 | | *p++ = m_palette[m_vram[pos+0x30000]]; |
| 131 | | pos++; |
| 132 | | } |
| 133 | | } |
| 134 | | |
| 135 | | WRITE8_MEMBER(hp16500_state::pal_ctrl_w) |
| 136 | | { |
| 137 | | m_clutoffs = data & 0xf; |
| 138 | | } |
| 139 | | |
| 140 | | |
| 141 | | WRITE8_MEMBER(hp16500_state::pal_r_w) |
| 142 | | { |
| 143 | | m_colors[0] = (data<<4); |
| 144 | | m_palette[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]); |
| 145 | | } |
| 146 | | |
| 147 | | WRITE8_MEMBER(hp16500_state::pal_g_w) |
| 148 | | { |
| 149 | | m_colors[1] = (data<<4); |
| 150 | | m_palette[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]); |
| 151 | | } |
| 152 | | |
| 153 | | WRITE8_MEMBER(hp16500_state::pal_b_w) |
| 154 | | { |
| 155 | | m_colors[2] = (data<<4); |
| 156 | | m_palette[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]); |
| 157 | | } |
| 158 | | |
| 159 | | WRITE16_MEMBER(hp16500_state::maskval_w) |
| 160 | | { |
| 161 | | // by analogy with the string printer code from the 16500b, which |
| 162 | | // appears to be a direct port... |
| 163 | | m_val = ((data>>8) & 0xff) ^ 0xff; |
| 164 | | m_mask = (data & 0xff) ^ 0xff; |
| 165 | | } |
| 166 | | |
| 167 | | static ADDRESS_MAP_START(hp16500a_map, AS_PROGRAM, 16, hp16500_state) |
| 168 | | AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_REGION("bios", 0) |
| 169 | | |
| 170 | | AM_RANGE(0x201000, 0x201001) AM_WRITE(maskval_w) |
| 171 | | |
| 172 | | AM_RANGE(0x204000, 0x204001) AM_WRITE8(pal_ctrl_w, 0x00ff) |
| 173 | | AM_RANGE(0x205000, 0x205001) AM_WRITE8(pal_r_w, 0x00ff) |
| 174 | | AM_RANGE(0x206000, 0x206001) AM_WRITE8(pal_g_w, 0x00ff) |
| 175 | | AM_RANGE(0x207000, 0x207001) AM_WRITE8(pal_b_w, 0x00ff) |
| 176 | | |
| 177 | | AM_RANGE(0x20c000, 0x20c001) AM_DEVREADWRITE8("crtc", mc6845_device, status_r, address_w, 0x00ff) |
| 178 | | AM_RANGE(0x20c002, 0x20c003) AM_DEVREADWRITE8("crtc", mc6845_device, register_r, register_w, 0x00ff) |
| 179 | | |
| 180 | | AM_RANGE(0x20e000, 0x20e001) AM_WRITE(vbl_ack16_w) |
| 181 | | |
| 182 | | AM_RANGE(0x600000, 0x61ffff) AM_WRITE(vram_w) |
| 183 | | AM_RANGE(0x600000, 0x67ffff) AM_READ8(vram_r, 0x00ff) |
| 184 | | |
| 185 | | AM_RANGE(0x980000, 0xa7ffff) AM_RAM |
| 186 | | ADDRESS_MAP_END |
| 187 | | |
| 188 | | UINT32 hp16500_state::screen_update_hp16500a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 189 | | { |
| 190 | | return 0; |
| 191 | | } |
| 192 | | |
| 193 | 66 | static ADDRESS_MAP_START(hp16500_map, AS_PROGRAM, 32, hp16500_state) |
| 194 | 67 | AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_REGION("bios", 0) |
| 195 | 68 | AM_RANGE(0x0020f000, 0x0020f003) AM_WRITE(palette_w) |
| r242673 | r242674 | |
| 301 | 174 | return 0; |
| 302 | 175 | } |
| 303 | 176 | |
| 304 | | static MACHINE_CONFIG_START( hp16500a, hp16500_state ) |
| 305 | | /* basic machine hardware */ |
| 306 | | MCFG_CPU_ADD("maincpu", M68000, 10000000) |
| 307 | | MCFG_CPU_PROGRAM_MAP(hp16500a_map) |
| 308 | | |
| 309 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 310 | | MCFG_SCREEN_RAW_PARAMS(10000000, 0x320, 0, 0x240, 0x19c, 0, 0x170 ) |
| 311 | | MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) |
| 312 | | |
| 313 | | MCFG_MC6845_ADD("crtc", MC6845, "screen", 10000000/9) |
| 314 | | MCFG_MC6845_SHOW_BORDER_AREA(false) |
| 315 | | MCFG_MC6845_CHAR_WIDTH(8) |
| 316 | | MCFG_MC6845_UPDATE_ROW_CB(hp16500_state, crtc_update_row) |
| 317 | | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(hp16500_state, vsync_changed)) |
| 318 | | |
| 319 | | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 320 | | MACHINE_CONFIG_END |
| 321 | | |
| 322 | 177 | static MACHINE_CONFIG_START( hp16500, hp16500_state ) |
| 323 | 178 | /* basic machine hardware */ |
| 324 | 179 | MCFG_CPU_ADD("maincpu", M68EC030, 25000000) |
| r242673 | r242674 | |
| 337 | 192 | static INPUT_PORTS_START( hp16500 ) |
| 338 | 193 | INPUT_PORTS_END |
| 339 | 194 | |
| 340 | | ROM_START( hp165ka0 ) |
| 341 | | ROM_REGION16_BE(0x20000, "bios", 0) |
| 342 | | ROM_LOAD16_BYTE( "16500-80002.bin", 0x000000, 0x008000, CRC(0324b75a) SHA1(837855fce9288139226c914cc0c43061e25b57d2) ) |
| 343 | | ROM_LOAD16_BYTE( "16500-80001.bin", 0x000001, 0x008000, CRC(362c8cbf) SHA1(812b79d1a31d09ec632a6842b11548168d82b5e7) ) |
| 344 | | ROM_END |
| 345 | | |
| 346 | 195 | ROM_START( hp16500b ) |
| 347 | 196 | ROM_REGION32_BE(0x20000, "bios", 0) |
| 348 | | ROM_LOAD32_BYTE( "16500-80014.bin", 0x000000, 0x008000, CRC(35187716) SHA1(82067737892ecd356a5454a43d9ce9b38ac2397f) ) |
| 349 | | ROM_LOAD32_BYTE( "16500-80015.bin", 0x000001, 0x008000, CRC(d8d26c1c) SHA1(b5b956c17c9d6e54519a686b5e4aa733b266bf6f) ) |
| 350 | | ROM_LOAD32_BYTE( "16500-80016.bin", 0x000002, 0x008000, CRC(61457b39) SHA1(f209315ec22a8ee9d44a0ec009b1afb47794bece) ) |
| 351 | | ROM_LOAD32_BYTE( "16500-80017.bin", 0x000003, 0x008000, CRC(e0b1096b) SHA1(426bb9a4756d8087bded4f6b61365d733ffbb09a) ) |
| 197 | ROM_LOAD32_BYTE( "16500-80014.bin", 0x000000, 0x008000, CRC(35187716) SHA1(82067737892ecd356a5454a43d9ce9b38ac2397f) ) |
| 198 | ROM_LOAD32_BYTE( "16500-80015.bin", 0x000001, 0x008000, CRC(d8d26c1c) SHA1(b5b956c17c9d6e54519a686b5e4aa733b266bf6f) ) |
| 199 | ROM_LOAD32_BYTE( "16500-80016.bin", 0x000002, 0x008000, CRC(61457b39) SHA1(f209315ec22a8ee9d44a0ec009b1afb47794bece) ) |
| 200 | ROM_LOAD32_BYTE( "16500-80017.bin", 0x000003, 0x008000, CRC(e0b1096b) SHA1(426bb9a4756d8087bded4f6b61365d733ffbb09a) ) |
| 352 | 201 | ROM_END |
| 353 | 202 | |
| 354 | | COMP( 1994, hp165ka0, 0, 0, hp16500a, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500a", GAME_NOT_WORKING|GAME_NO_SOUND) |
| 355 | 203 | COMP( 1994, hp16500b, 0, 0, hp16500, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500b", GAME_NOT_WORKING|GAME_NO_SOUND) |