src/mess/drivers/mz2500.c
| r8919 | r8920 | |
| 403 | 403 | //printf("%02x\n",data); |
| 404 | 404 | } |
| 405 | 405 | |
| 406 | /* sets first 16 color entries of the 4096 palette bank */ |
| 407 | static WRITE8_HANDLER( palette4096_io_w ) |
| 408 | { |
| 409 | static UINT8 r[16],g[16],b[16]; |
| 410 | static UINT8 pal_index; |
| 411 | static UINT8 pal_entry; |
| 412 | |
| 413 | pal_index = cpu_get_reg(space->machine->device("maincpu"), Z80_B); |
| 414 | pal_entry = (pal_index & 0x1e) >> 1; |
| 415 | |
| 416 | if(pal_index & 1) |
| 417 | g[pal_entry] = (data & 0x0f); |
| 418 | else |
| 419 | { |
| 420 | r[pal_entry] = (data & 0xf0) >> 4; |
| 421 | b[pal_entry] = data & 0x0f; |
| 422 | } |
| 423 | |
| 424 | palette_set_color_rgb(space->machine, pal_entry+0x200,pal4bit(r[pal_entry]),pal4bit(g[pal_entry]),pal4bit(b[pal_entry])); |
| 425 | } |
| 426 | |
| 406 | 427 | static ADDRESS_MAP_START(mz2500_io, ADDRESS_SPACE_IO, 8) |
| 407 | 428 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 408 | 429 | // AM_RANGE(0x60, 0x63) AM_WRITE(w3100a_w) |
| r8919 | r8920 | |
| 413 | 434 | AM_RANGE(0xa9, 0xa9) AM_READ(mz2500_rom_r) |
| 414 | 435 | // AM_RANGE(0xac, 0xad) AM_WRITE(emm_w) |
| 415 | 436 | // AM_RANGE(0xad, 0xad) AM_READ(emm_r) |
| 416 | | // AM_RANGE(0xae, 0xae) AM_WRITE(crtc_w) |
| 437 | AM_RANGE(0xae, 0xae) AM_WRITE(palette4096_io_w) |
| 417 | 438 | // AM_RANGE(0xb0, 0xb3) AM_READWRITE(sio_r,sio_w) |
| 418 | 439 | AM_RANGE(0xb4, 0xb4) AM_READWRITE(mz2500_bank_addr_r,mz2500_bank_addr_w) |
| 419 | 440 | AM_RANGE(0xb5, 0xb5) AM_READWRITE(mz2500_bank_data_r,mz2500_bank_data_w) |