trunk/src/mess/drivers/coleco.c
| r30905 | r30906 | |
| 112 | 112 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 113 | 113 | ADDRESS_MAP_END |
| 114 | 114 | |
| 115 | | static ADDRESS_MAP_START( czz50_io_map, AS_IO, 8, coleco_state ) |
| 116 | | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 117 | | AM_RANGE(0x80, 0x80) AM_MIRROR(0x1f) AM_WRITE(paddle_off_w) |
| 118 | | AM_RANGE(0xa0, 0xa0) AM_MIRROR(0x1e) AM_DEVREADWRITE("tms9928a", tms9928a_device, vram_read, vram_write) |
| 119 | | AM_RANGE(0xa1, 0xa1) AM_MIRROR(0x1e) AM_DEVREADWRITE("tms9928a", tms9928a_device, register_read, register_write) |
| 120 | | AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x1f) AM_WRITE(paddle_on_w) |
| 121 | | AM_RANGE(0xe0, 0xe0) AM_MIRROR(0x1f) AM_DEVWRITE("sn76489a", sn76489a_device, write) |
| 122 | | AM_RANGE(0xe0, 0xe0) AM_MIRROR(0x1d) AM_READ(paddle_1_r) |
| 123 | | AM_RANGE(0xe2, 0xe2) AM_MIRROR(0x1d) AM_READ(paddle_2_r) |
| 124 | | ADDRESS_MAP_END |
| 125 | 115 | |
| 126 | | |
| 127 | 116 | /* Input Ports */ |
| 128 | 117 | |
| 129 | 118 | static INPUT_PORTS_START( czz50 ) |
| r30905 | r30906 | |
| 298 | 287 | /* Machine Drivers */ |
| 299 | 288 | |
| 300 | 289 | static MACHINE_CONFIG_START( coleco, coleco_state ) |
| 301 | | // basic machine hardware |
| 302 | | MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // 3.579545 MHz |
| 290 | |
| 291 | /* basic machine hardware */ |
| 292 | MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // 3.579545 MHz |
| 303 | 293 | MCFG_CPU_PROGRAM_MAP(coleco_map) |
| 304 | 294 | MCFG_CPU_IO_MAP(coleco_io_map) |
| 305 | 295 | |
| 306 | | // video hardware |
| 296 | /* video hardware */ |
| 307 | 297 | MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL_10_738635MHz / 2 ) |
| 308 | 298 | MCFG_TMS9928A_VRAM_SIZE(0x4000) |
| 309 | 299 | MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(coleco_state, coleco_vdp_interrupt)) |
| 310 | 300 | MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" ) |
| 311 | 301 | MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update ) |
| 312 | 302 | |
| 313 | | // sound hardware |
| 303 | /* sound hardware */ |
| 314 | 304 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 315 | | MCFG_SOUND_ADD("sn76489a", SN76489A, XTAL_7_15909MHz/2) /* 3.579545 MHz */ |
| 305 | MCFG_SOUND_ADD("sn76489a", SN76489A, XTAL_7_15909MHz/2) // 3.579545 MHz |
| 316 | 306 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 317 | 307 | |
| 318 | 308 | /* cartridge */ |
| r30905 | r30906 | |
| 327 | 317 | MCFG_TIMER_DRIVER_ADD_PERIODIC("paddle_timer", coleco_state, paddle_update_callback, attotime::from_msec(20)) |
| 328 | 318 | MACHINE_CONFIG_END |
| 329 | 319 | |
| 330 | | static MACHINE_CONFIG_START( czz50, coleco_state ) |
| 331 | | // basic machine hardware |
| 332 | | MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // ??? |
| 333 | | MCFG_CPU_PROGRAM_MAP(czz50_map) |
| 334 | | MCFG_CPU_IO_MAP(czz50_io_map) |
| 320 | static MACHINE_CONFIG_DERIVED( colecop, coleco ) |
| 335 | 321 | |
| 336 | | // video hardware |
| 337 | | MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL_10_738635MHz / 2 ) |
| 322 | /* video hardware */ |
| 323 | MCFG_DEVICE_REMOVE("tms9928a") |
| 324 | MCFG_DEVICE_REMOVE("screen") |
| 325 | |
| 326 | MCFG_DEVICE_ADD( "tms9928a", TMS9929A, XTAL_10_738635MHz / 2 ) |
| 338 | 327 | MCFG_TMS9928A_VRAM_SIZE(0x4000) |
| 339 | 328 | MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(coleco_state, coleco_vdp_interrupt)) |
| 340 | | MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" ) |
| 329 | MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" ) |
| 341 | 330 | MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update ) |
| 331 | MACHINE_CONFIG_END |
| 342 | 332 | |
| 343 | | // sound hardware |
| 344 | | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 345 | | MCFG_SOUND_ADD("sn76489a", SN76489A, XTAL_7_15909MHz/2) // ??? |
| 346 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 333 | static MACHINE_CONFIG_DERIVED( czz50, coleco ) |
| 347 | 334 | |
| 348 | | /* cartridge */ |
| 349 | | MCFG_CARTSLOT_ADD("cart") |
| 350 | | MCFG_CARTSLOT_EXTENSION_LIST("rom,col,bin") |
| 351 | | MCFG_CARTSLOT_NOT_MANDATORY |
| 352 | | MCFG_CARTSLOT_LOAD(coleco_state,czz50_cart) |
| 353 | | MCFG_CARTSLOT_INTERFACE("coleco_cart") |
| 335 | /* basic machine hardware */ |
| 336 | MCFG_CPU_MODIFY("maincpu") // note: cpu speed unverified, assume it's the same as ColecoVision |
| 337 | MCFG_CPU_PROGRAM_MAP(czz50_map) |
| 354 | 338 | |
| 355 | | /* software lists */ |
| 356 | | MCFG_SOFTWARE_LIST_ADD("cart_list","coleco") |
| 357 | | |
| 358 | | MCFG_TIMER_DRIVER_ADD_PERIODIC("paddle_timer", coleco_state, paddle_update_callback, attotime::from_msec(20)) |
| 339 | /* cartridge */ |
| 340 | MCFG_CARTSLOT_MODIFY("cart") |
| 341 | MCFG_CARTSLOT_LOAD(coleco_state, czz50_cart) |
| 359 | 342 | MACHINE_CONFIG_END |
| 360 | 343 | |
| 361 | 344 | static MACHINE_CONFIG_DERIVED( dina, czz50 ) |
| 345 | |
| 346 | /* video hardware */ |
| 362 | 347 | MCFG_DEVICE_REMOVE("tms9928a") |
| 363 | 348 | MCFG_DEVICE_REMOVE("screen") |
| 364 | 349 | |
| r30905 | r30906 | |
| 398 | 383 | |
| 399 | 384 | ROM_START (colecop) |
| 400 | 385 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 401 | | /* Has shorter delay than NTSC - about 3 seconds ($190a) + additional code right at beginning (replacing NTSC FF's) */ |
| 402 | 386 | ROM_LOAD( "r72114a_8317.u2", 0x0000, 0x2000, CRC(d393c0cc) SHA1(160077afb139943725c634d6539898db59f33657) ) |
| 403 | 387 | ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) |
| 404 | 388 | ROM_END |
| r30905 | r30906 | |
| 423 | 407 | |
| 424 | 408 | // YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS |
| 425 | 409 | CONS( 1982, coleco, 0, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision (NTSC)", 0 ) |
| 426 | | CONS( 1983, colecop, coleco, 0, dina, coleco, driver_device, 0, "Coleco", "ColecoVision (PAL)", 0 ) |
| 410 | CONS( 1983, colecop, coleco, 0, colecop, coleco, driver_device, 0, "Coleco", "ColecoVision (PAL)", 0 ) |
| 427 | 411 | CONS( 1983, svi603, coleco, 0, coleco, coleco, driver_device, 0, "Spectravideo", "SVI-603 Coleco Game Adapter", 0 ) |
| 428 | 412 | CONS( 1986, czz50, 0, coleco, czz50, czz50, driver_device, 0, "Bit Corporation", "Chuang Zao Zhe 50", 0 ) |
| 429 | 413 | CONS( 1988, dina, czz50, 0, dina, czz50, driver_device, 0, "Telegames", "Dina", 0 ) |