src/mess/drivers/avigo.c
| r9173 | r9174 | |
| 301 | 301 | case 0x03: |
| 302 | 302 | { |
| 303 | 303 | avigo_flash_at_0x4000 = 1; |
| 304 | | addr = (unsigned char *)memory_region(machine, "flash1"); |
| 305 | 304 | } |
| 306 | 305 | break; |
| 307 | 306 | |
| r9173 | r9174 | |
| 309 | 308 | case 0x05: |
| 310 | 309 | { |
| 311 | 310 | avigo_flash_at_0x4000 = 2; |
| 312 | | addr = (unsigned char *)memory_region(machine, "flash2"); |
| 313 | 311 | } |
| 314 | 312 | break; |
| 315 | 313 | |
| 316 | 314 | default: |
| 317 | 315 | avigo_flash_at_0x4000 = 0; |
| 318 | | addr = (unsigned char *)memory_region(machine, "flash0"); |
| 319 | 316 | break; |
| 320 | 317 | } |
| 321 | 318 | |
| 319 | addr = (unsigned char *)avigo_flashes[avigo_flash_at_0x4000]->space()->get_read_ptr(0); |
| 322 | 320 | addr = addr + (avigo_rom_bank_l<<14); |
| 323 | 321 | avigo_setbank(machine, 1, addr, avigo_flash_0x4000_read_handler, avigo_flash_0x4000_write_handler); |
| 324 | 322 | |
| r9173 | r9174 | |
| 346 | 344 | avigo_flash_at_0x8000 = 1; |
| 347 | 345 | |
| 348 | 346 | |
| 349 | | addr = (unsigned char *)memory_region(machine, "flash1"); |
| 347 | addr = (unsigned char *)avigo_flashes[avigo_flash_at_0x8000]->space()->get_read_ptr(0); |
| 350 | 348 | addr = addr + (avigo_ram_bank_l<<14); |
| 351 | 349 | avigo_setbank(machine, 2, addr, avigo_flash_0x8000_read_handler, NULL /* avigo_flash_0x8000_write_handler */); |
| 352 | 350 | break; |
| r9173 | r9174 | |
| 354 | 352 | case 0x07: |
| 355 | 353 | avigo_flash_at_0x8000 = 0; |
| 356 | 354 | |
| 357 | | addr = (unsigned char *)memory_region(machine, "flash0"); |
| 355 | addr = (unsigned char *)avigo_flashes[avigo_flash_at_0x8000]->space()->get_read_ptr(0); |
| 358 | 356 | addr = addr + (avigo_ram_bank_l<<14); |
| 359 | 357 | avigo_setbank(machine, 2, addr, avigo_flash_0x8000_read_handler, NULL /* avigo_flash_0x8000_write_handler */); |
| 360 | 358 | break; |
| r9173 | r9174 | |
| 410 | 408 | |
| 411 | 409 | memset(avigo_banked_opbase, 0, sizeof(avigo_banked_opbase)); |
| 412 | 410 | |
| 411 | /* keep machine pointers to flash devices */ |
| 412 | avigo_flashes[0] = machine->device<intelfsh8_device>("flash0"); |
| 413 | avigo_flashes[1] = machine->device<intelfsh8_device>("flash1"); |
| 414 | avigo_flashes[2] = machine->device<intelfsh8_device>("flash2"); |
| 415 | |
| 416 | /* initialize flash contents */ |
| 417 | memcpy(memory_region(machine, "maincpu")+0x10000, avigo_flashes[0]->space()->get_read_ptr(0), 0x100000); |
| 418 | memcpy(memory_region(machine, "maincpu")+0x110000, avigo_flashes[1]->space()->get_read_ptr(0), 0x100000); |
| 419 | |
| 413 | 420 | stylus_marker_x = AVIGO_SCREEN_WIDTH>>1; |
| 414 | 421 | stylus_marker_y = AVIGO_SCREEN_HEIGHT>>1; |
| 415 | 422 | stylus_press_x = 0; |
| r9173 | r9174 | |
| 435 | 442 | |
| 436 | 443 | cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM)->set_direct_update_handler(direct_update_delegate_create_static(avigo_opbase_handler, *machine)); |
| 437 | 444 | |
| 438 | | addr = (unsigned char *)memory_region(machine, "flash0"); |
| 445 | addr = (unsigned char *)avigo_flashes[0]->space()->get_read_ptr(0); |
| 439 | 446 | avigo_setbank(machine, 0, addr, avigo_flash_0x0000_read_handler, avigo_flash_0x0000_write_handler); |
| 440 | 447 | |
| 441 | 448 | avigo_setbank(machine, 3, messram_get_ptr(machine->device("messram")), NULL, NULL); |
| r9173 | r9174 | |
| 449 | 456 | /* a timer used to check status of pen */ |
| 450 | 457 | /* an interrupt is generated when the pen is pressed to the screen */ |
| 451 | 458 | timer_pulse(machine, ATTOTIME_IN_HZ(50), NULL, 0, avigo_dummy_timer_callback); |
| 452 | | |
| 453 | | /* keep machine pointers to flash devices */ |
| 454 | | avigo_flashes[0] = machine->device<intelfsh8_device>("flash0"); |
| 455 | | avigo_flashes[1] = machine->device<intelfsh8_device>("flash1"); |
| 456 | | avigo_flashes[2] = machine->device<intelfsh8_device>("flash2"); |
| 457 | 459 | } |
| 458 | 460 | |
| 459 | 461 | |
| r9173 | r9174 | |
| 911 | 913 | ROM_START(avigo) |
| 912 | 914 | ROM_REGION(0x210000, "maincpu",0) |
| 913 | 915 | ROM_LOAD("avigo.rom", 0x010000, 0x0150000, CRC(160ee4a6) SHA1(4d09201a3876de16808bd92989f3d8d7182d72b3)) |
| 914 | | |
| 915 | | ROM_REGION(0x100000, "flash0", 0) |
| 916 | | ROM_COPY("maincpu", 0x10000, 0x00000, 0x100000) |
| 917 | | |
| 918 | | ROM_REGION(0x100000, "flash1", 0) |
| 919 | | ROM_COPY("maincpu", 0x110000, 0x00000, 0x40000) |
| 920 | | |
| 921 | | ROM_REGION(0x100000, "flash2", ROMREGION_ERASE00) |
| 922 | 916 | ROM_END |
| 923 | 917 | |
| 924 | 918 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ |