src/mess/drivers/phc25.c
| r7474 | r7475 | |
| 24 | 24 | TODO:
|
| 25 | 25 | |
| 26 | 26 | - RAM should be 16KB
|
| 27 | | - chargen ROM
|
| 28 | 27 | - MC6847 mode selection lines
|
| 29 | 28 | - keyboard
|
| 30 | 29 | - cassette
|
| r7474 | r7475 | |
| 101 | 100 | cassette_output(state->cassette, BIT(data, 0) ? -1.0 : +1.0);
|
| 102 | 101 | |
| 103 | 102 | /* internal/external character generator */
|
| 104 | | mc6847_intext_w(state->mc6847, !BIT(data, 2));
|
| 103 | mc6847_intext_w(state->mc6847, BIT(data, 2));
|
| 105 | 104 | |
| 106 | 105 | /* cassette motor */
|
| 107 | 106 | cassette_change_state(state->cassette, CASSETTE_MASK_MOTOR, BIT(data, 1) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED);
|
| r7474 | r7475 | |
| 286 | 285 | {
|
| 287 | 286 | phc25_state *state = (phc25_state *)machine->driver_data;
|
| 288 | 287 | |
| 289 | | return state->char_rom[(ch << 4) | (line & 0x0f)];
|
| 288 | return state->char_rom[((ch-2) * 12) + line + 4];
|
| 290 | 289 | }
|
| 291 | 290 | |
| 292 | 291 | static const mc6847_interface mc6847_intf =
|
| r7474 | r7475 | |
| 305 | 304 | DEVCB_NULL
|
| 306 | 305 | };
|
| 307 | 306 | |
| 308 | | static VIDEO_START( phc25 )
|
| 307 | static VIDEO_START( pal )
|
| 309 | 308 | {
|
| 310 | 309 | phc25_state *state = (phc25_state *)machine->driver_data;
|
| 311 | 310 | |
| r7474 | r7475 | |
| 313 | 312 | state->mc6847 = devtag_get_device(machine, MC6847_TAG);
|
| 314 | 313 | |
| 315 | 314 | /* find memory regions */
|
| 315 | state->char_rom = memory_region(machine, Z80_TAG) + 0x5000;
|
| 316 | }
|
| 317 | |
| 318 | static VIDEO_START( ntsc )
|
| 319 | {
|
| 320 | phc25_state *state = (phc25_state *)machine->driver_data;
|
| 321 | |
| 322 | /* find devices */
|
| 323 | state->mc6847 = devtag_get_device(machine, MC6847_TAG);
|
| 324 | |
| 325 | /* find memory regions */
|
| 316 | 326 | state->char_rom = memory_region(machine, "chargen");
|
| 317 | 327 | }
|
| 318 | 328 | |
| r7474 | r7475 | |
| 371 | 381 | MDRV_MACHINE_START(phc25)
|
| 372 | 382 | |
| 373 | 383 | /* video hardware */
|
| 374 | | MDRV_VIDEO_START(phc25)
|
| 375 | 384 | MDRV_VIDEO_UPDATE(phc25)
|
| 376 | 385 | |
| 377 | 386 | /* sound hardware */
|
| r7474 | r7475 | |
| 404 | 413 | MDRV_MC6847_ADD(MC6847_TAG, mc6847_intf)
|
| 405 | 414 | MDRV_MC6847_TYPE(M6847_VERSION_ORIGINAL_PAL)
|
| 406 | 415 | MDRV_MC6847_CHAR_ROM(phc25_char_rom_r)
|
| 416 | |
| 417 | MDRV_VIDEO_START(pal)
|
| 407 | 418 | MACHINE_DRIVER_END
|
| 408 | 419 | |
| 409 | 420 | static MACHINE_DRIVER_START( ntsc )
|
| r7474 | r7475 | |
| 421 | 432 | MDRV_MC6847_ADD(MC6847_TAG, mc6847_intf)
|
| 422 | 433 | MDRV_MC6847_TYPE(M6847_VERSION_ORIGINAL_NTSC)
|
| 423 | 434 | MDRV_MC6847_CHAR_ROM(phc25_char_rom_r)
|
| 435 | |
| 436 | MDRV_VIDEO_START(ntsc)
|
| 424 | 437 | MACHINE_DRIVER_END
|
| 425 | 438 | |
| 426 | 439 | /* ROMs */
|
| r7474 | r7475 | |
| 430 | 443 | ROM_LOAD( "phc25rom.0", 0x0000, 0x2000, CRC(fa28336b) SHA1(582376bee455e124de24ba4ac02326c8a592fa5a) )
|
| 431 | 444 | ROM_LOAD( "phc25rom.1", 0x2000, 0x2000, CRC(38fd578b) SHA1(dc3db78c0cdc89f1605200d39535be65a4091705) )
|
| 432 | 445 | ROM_LOAD( "phc25rom.2", 0x4000, 0x2000, CRC(54392b27) SHA1(1587827fe9438780b50164727ce3fdea1b98078a) )
|
| 433 | | |
| 434 | | ROM_REGION( 0x1000, "chargen", 0 )
|
| 435 | | ROM_LOAD( "chargen.bin", 0x0000, 0x1000, NO_DUMP )
|
| 436 | 446 | ROM_END
|
| 437 | 447 | |
| 438 | 448 | ROM_START( phc25j )
|