summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2012-09-17 09:16:44 +0000
committer Aaron Giles <aaron@aarongiles.com>2012-09-17 09:16:44 +0000
commit0dc663e2e920bad3c4c1247dfb83c66a7b06d354 (patch)
tree9364ca67c09e77b54cd7aec72c8040c441fc3a43 /src/mess/machine
parent3cce7e019e095296b5ce2bb45d19b1209bed961d (diff)
Memory handler cleanup 3. Add mem_mask parameter
to 8-bit handlers to match the others. To ease pain, added DECLARE_READ/WRITE_HANDLER macros that set up a default parameter. Also updated devcb so that the handlers can be called with or without the mem_mask. [Aaron Giles]
Diffstat (limited to 'src/mess/machine')
-rw-r--r--src/mess/machine/990_dk.h4
-rw-r--r--src/mess/machine/990_hd.h4
-rw-r--r--src/mess/machine/apple2gs.c12
-rw-r--r--src/mess/machine/c65.c6
-rw-r--r--src/mess/machine/concept.c20
-rw-r--r--src/mess/machine/dgn_beta.c34
-rw-r--r--src/mess/machine/lux21046.c4
-rw-r--r--src/mess/machine/lynx.c2
-rw-r--r--src/mess/machine/mboard.h18
-rw-r--r--src/mess/machine/nes_mmc.c12
-rw-r--r--src/mess/machine/nes_mmc.h24
-rw-r--r--src/mess/machine/nes_pcb.c144
-rw-r--r--src/mess/machine/partner.c4
-rw-r--r--src/mess/machine/pc_fdc.c4
-rw-r--r--src/mess/machine/pc_fdc.h6
-rw-r--r--src/mess/machine/pc_joy.h4
-rw-r--r--src/mess/machine/radio86.c4
-rw-r--r--src/mess/machine/sgi.h4
-rw-r--r--src/mess/machine/sst39vfx.h4
-rw-r--r--src/mess/machine/thomflop.c20
-rw-r--r--src/mess/machine/thomflop.h12
-rw-r--r--src/mess/machine/ti990.h4
22 files changed, 176 insertions, 174 deletions
diff --git a/src/mess/machine/990_dk.h b/src/mess/machine/990_dk.h
index 7607f586788..9df1b7fe483 100644
--- a/src/mess/machine/990_dk.h
+++ b/src/mess/machine/990_dk.h
@@ -5,6 +5,6 @@ LEGACY_FLOPPY_OPTIONS_EXTERN(fd800);
void fd800_machine_init(running_machine &machine, void (*interrupt_callback)(running_machine &machine, int state));
-extern READ8_HANDLER(fd800_cru_r);
-extern WRITE8_HANDLER(fd800_cru_w);
+extern DECLARE_READ8_HANDLER(fd800_cru_r);
+extern DECLARE_WRITE8_HANDLER(fd800_cru_w);
diff --git a/src/mess/machine/990_hd.h b/src/mess/machine/990_hd.h
index 740b4c9bd64..892e90cc0f7 100644
--- a/src/mess/machine/990_hd.h
+++ b/src/mess/machine/990_hd.h
@@ -10,8 +10,8 @@ MACHINE_START( ti990_hdc );
void ti990_hdc_init(running_machine &machine, void (*interrupt_callback)(running_machine &machine, int state));
-READ16_HANDLER(ti990_hdc_r);
-WRITE16_HANDLER(ti990_hdc_w);
+DECLARE_READ16_HANDLER(ti990_hdc_r);
+DECLARE_WRITE16_HANDLER(ti990_hdc_w);
MACHINE_CONFIG_EXTERN( ti990_hdc );
diff --git a/src/mess/machine/apple2gs.c b/src/mess/machine/apple2gs.c
index 3fc4c0dd472..9b4b9c78ea9 100644
--- a/src/mess/machine/apple2gs.c
+++ b/src/mess/machine/apple2gs.c
@@ -1013,7 +1013,7 @@ READ8_MEMBER( apple2gs_state::apple2gs_c0xx_r )
case 0x3D: /* C03D - SOUNDDATA */
case 0x3E: /* C03E - SOUNDADRL */
case 0x3F: /* C03F - SOUNDADRH */
- result = gssnd_r(space, offset & 0x03);
+ result = gssnd_r(space, offset & 0x03, mem_mask);
break;
case 0x41: /* C041 - INTEN */
@@ -1174,7 +1174,7 @@ WRITE8_MEMBER( apple2gs_state::apple2gs_c0xx_w )
case 0x3D: /* C03D - SOUNDDATA */
case 0x3E: /* C03E - SOUNDADRL */
case 0x3F: /* C03F - SOUNDADRH */
- gssnd_w(space, offset & 0x03, data);
+ gssnd_w(space, offset & 0x03, data, mem_mask);
break;
case 0x41: /* C041 - INTEN */
@@ -1763,10 +1763,10 @@ static WRITE8_HANDLER( apple2gs_Exxxxx_w )
state->m_slowmem[offset] = data;
}
-static WRITE8_HANDLER( apple2gs_E004xx_w ) { apple2gs_Exxxxx_w(space, offset + 0x00400, data); }
-static WRITE8_HANDLER( apple2gs_E02xxx_w ) { apple2gs_Exxxxx_w(space, offset + 0x02000, data); }
-static WRITE8_HANDLER( apple2gs_E104xx_w ) { apple2gs_Exxxxx_w(space, offset + 0x10400, data); }
-static WRITE8_HANDLER( apple2gs_E12xxx_w ) { apple2gs_Exxxxx_w(space, offset + 0x12000, data); }
+static WRITE8_HANDLER( apple2gs_E004xx_w ) { apple2gs_Exxxxx_w(space, offset + 0x00400, data, mem_mask); }
+static WRITE8_HANDLER( apple2gs_E02xxx_w ) { apple2gs_Exxxxx_w(space, offset + 0x02000, data, mem_mask); }
+static WRITE8_HANDLER( apple2gs_E104xx_w ) { apple2gs_Exxxxx_w(space, offset + 0x10400, data, mem_mask); }
+static WRITE8_HANDLER( apple2gs_E12xxx_w ) { apple2gs_Exxxxx_w(space, offset + 0x12000, data, mem_mask); }
static WRITE8_HANDLER( apple2gs_slowmem_w )
{
diff --git a/src/mess/machine/c65.c b/src/mess/machine/c65.c
index c2aab1fd340..34f72242e02 100644
--- a/src/mess/machine/c65.c
+++ b/src/mess/machine/c65.c
@@ -217,6 +217,7 @@ const mos6526_interface c65_cia1 =
/* processor has only 1 mega address space !? */
/* and system 8 megabyte */
/* dma controller and bankswitch hardware ?*/
+static DECLARE_READ8_HANDLER( c65_read_mem );
static READ8_HANDLER( c65_read_mem )
{
c65_state *state = space.machine().driver_data<c65_state>();
@@ -228,6 +229,7 @@ static READ8_HANDLER( c65_read_mem )
return result;
}
+static DECLARE_WRITE8_HANDLER( c65_write_mem );
static WRITE8_HANDLER( c65_write_mem )
{
c65_state *state = space.machine().driver_data<c65_state>();
@@ -659,7 +661,7 @@ static WRITE8_HANDLER( c65_write_io )
c65_fdc_w(space.machine(), offset&0x1f,data);
else
{
- c65_ram_expansion_w(space, offset&0x1f, data);
+ c65_ram_expansion_w(space, offset&0x1f, data, mem_mask);
/*ram expansion crtl optional */
}
break;
@@ -723,7 +725,7 @@ static READ8_HANDLER( c65_read_io )
return c65_fdc_r(space.machine(), offset&0x1f);
else
{
- return c65_ram_expansion_r(space, offset&0x1f);
+ return c65_ram_expansion_r(space, offset&0x1f, mem_mask);
/*return; ram expansion crtl optional */
}
break;
diff --git a/src/mess/machine/concept.c b/src/mess/machine/concept.c
index 49634356280..ff5c244b2ce 100644
--- a/src/mess/machine/concept.c
+++ b/src/mess/machine/concept.c
@@ -276,7 +276,7 @@ READ16_MEMBER(concept_state::concept_io_r)
{
int slot = ((offset >> 4) & 7) - 1;
if (m_expansion_slots[slot].reg_read)
- return m_expansion_slots[slot].reg_read(space, offset & 0xf);
+ return m_expansion_slots[slot].reg_read(space, offset & 0xf, mem_mask);
}
break;
@@ -299,7 +299,7 @@ READ16_MEMBER(concept_state::concept_io_r)
int slot = ((offset >> 8) & 7) - 1;
LOG(("concept_io_r: Slot ROM memory accessed for slot %d at address 0x03%4.4x\n", slot, offset << 1));
if (m_expansion_slots[slot].rom_read)
- return m_expansion_slots[slot].rom_read(space, offset & 0xff);
+ return m_expansion_slots[slot].rom_read(space, offset & 0xff, mem_mask);
}
break;
@@ -418,7 +418,7 @@ WRITE16_MEMBER(concept_state::concept_io_w)
LOG(("concept_io_w: Slot I/O register written for slot %d at address 0x03%4.4x, data: 0x%4.4x\n",
slot, offset << 1, data));
if (m_expansion_slots[slot].reg_write)
- m_expansion_slots[slot].reg_write(space, offset & 0xf, data);
+ m_expansion_slots[slot].reg_write(space, offset & 0xf, data, mem_mask);
}
break;
@@ -441,7 +441,7 @@ WRITE16_MEMBER(concept_state::concept_io_w)
int slot = ((offset >> 8) & 7) - 1;
LOG(("concept_io_w: Slot ROM memory written to for slot %d at address 0x03%4.4x, data: 0x%4.4x\n", slot, offset << 1, data));
if (m_expansion_slots[slot].rom_write)
- m_expansion_slots[slot].rom_write(space, offset & 0xff, data);
+ m_expansion_slots[slot].rom_write(space, offset & 0xff, data, mem_mask);
}
break;
@@ -548,9 +548,9 @@ enum
};
-static READ8_HANDLER(concept_fdc_reg_r);
-static WRITE8_HANDLER(concept_fdc_reg_w);
-static READ8_HANDLER(concept_fdc_rom_r);
+static DECLARE_READ8_HANDLER(concept_fdc_reg_r);
+static DECLARE_WRITE8_HANDLER(concept_fdc_reg_w);
+static DECLARE_READ8_HANDLER(concept_fdc_rom_r);
static void concept_fdc_init(running_machine &machine, int slot)
{
@@ -670,9 +670,9 @@ static READ8_HANDLER(concept_fdc_rom_r)
* Concept Hard Disk Controller (hdc)
*/
-static READ8_HANDLER(concept_hdc_reg_r);
-static WRITE8_HANDLER(concept_hdc_reg_w);
-static READ8_HANDLER(concept_hdc_rom_r);
+static DECLARE_READ8_HANDLER(concept_hdc_reg_r);
+static DECLARE_WRITE8_HANDLER(concept_hdc_reg_w);
+static DECLARE_READ8_HANDLER(concept_hdc_rom_r);
/*
* Hook up the Register and ROM R/W routines into the Slot I/O Space
diff --git a/src/mess/machine/dgn_beta.c b/src/mess/machine/dgn_beta.c
index 983c9b999bd..3493a2ee035 100644
--- a/src/mess/machine/dgn_beta.c
+++ b/src/mess/machine/dgn_beta.c
@@ -73,23 +73,23 @@
// Ram banking handlers.
-static WRITE8_HANDLER( dgnbeta_ram_b0_w );
-static WRITE8_HANDLER( dgnbeta_ram_b1_w );
-static WRITE8_HANDLER( dgnbeta_ram_b2_w );
-static WRITE8_HANDLER( dgnbeta_ram_b3_w );
-static WRITE8_HANDLER( dgnbeta_ram_b4_w );
-static WRITE8_HANDLER( dgnbeta_ram_b5_w );
-static WRITE8_HANDLER( dgnbeta_ram_b6_w );
-static WRITE8_HANDLER( dgnbeta_ram_b7_w );
-static WRITE8_HANDLER( dgnbeta_ram_b8_w );
-static WRITE8_HANDLER( dgnbeta_ram_b9_w );
-static WRITE8_HANDLER( dgnbeta_ram_bA_w );
-static WRITE8_HANDLER( dgnbeta_ram_bB_w );
-static WRITE8_HANDLER( dgnbeta_ram_bC_w );
-static WRITE8_HANDLER( dgnbeta_ram_bD_w );
-static WRITE8_HANDLER( dgnbeta_ram_bE_w );
-static WRITE8_HANDLER( dgnbeta_ram_bF_w );
-static WRITE8_HANDLER( dgnbeta_ram_bG_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b0_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b1_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b2_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b3_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b4_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b5_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b6_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b7_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b8_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b9_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bA_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bB_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bC_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bD_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bE_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bF_w );
+static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bG_w );
#define VERBOSE 0
diff --git a/src/mess/machine/lux21046.c b/src/mess/machine/lux21046.c
index 081b3331d8c..bca09be2913 100644
--- a/src/mess/machine/lux21046.c
+++ b/src/mess/machine/lux21046.c
@@ -223,8 +223,8 @@ WRITE_LINE_MEMBER( luxor_55_21046_device::dma_int_w )
m_maincpu->set_input_line(INPUT_LINE_IRQ0, m_fdc_irq | m_dma_irq);
}
-static UINT8 memory_read_byte(address_space &space, offs_t address) { return space.read_byte(address); }
-static void memory_write_byte(address_space &space, offs_t address, UINT8 data) { space.write_byte(address, data); }
+static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
+static void memory_write_byte(address_space &space, offs_t address, UINT8 data, UINT8 mem_mask) { space.write_byte(address, data); }
static Z80DMA_INTERFACE( dma_intf )
{
diff --git a/src/mess/machine/lynx.c b/src/mess/machine/lynx.c
index 9e5b26590b7..3d34e596549 100644
--- a/src/mess/machine/lynx.c
+++ b/src/mess/machine/lynx.c
@@ -1769,7 +1769,7 @@ READ8_MEMBER(lynx_state::mikey_read)
case 0x8c:
case 0x8d:
- value = lynx_uart_r(space, offset);
+ value = lynx_uart_r(space, offset, mem_mask);
break;
default:
diff --git a/src/mess/machine/mboard.h b/src/mess/machine/mboard.h
index f3d4dd4b5f5..3fd35568041 100644
--- a/src/mess/machine/mboard.h
+++ b/src/mess/machine/mboard.h
@@ -52,17 +52,17 @@ struct MOUSE_HOLD {
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_HANDLER( mboard_read_board_8 );
-WRITE8_HANDLER( mboard_write_board_8 );
-WRITE8_HANDLER( mboard_write_LED_8 );
+DECLARE_READ8_HANDLER( mboard_read_board_8 );
+DECLARE_WRITE8_HANDLER( mboard_write_board_8 );
+DECLARE_WRITE8_HANDLER( mboard_write_LED_8 );
-READ16_HANDLER( mboard_read_board_16 );
-WRITE16_HANDLER( mboard_write_board_16 );
-WRITE16_HANDLER( mboard_write_LED_16 );
+DECLARE_READ16_HANDLER( mboard_read_board_16 );
+DECLARE_WRITE16_HANDLER( mboard_write_board_16 );
+DECLARE_WRITE16_HANDLER( mboard_write_LED_16 );
-READ32_HANDLER( mboard_read_board_32 );
-WRITE32_HANDLER( mboard_write_board_32 );
-WRITE32_HANDLER( mboard_write_LED_32 );
+DECLARE_READ32_HANDLER( mboard_read_board_32 );
+DECLARE_WRITE32_HANDLER( mboard_write_board_32 );
+DECLARE_WRITE32_HANDLER( mboard_write_LED_32 );
TIMER_DEVICE_CALLBACK( mboard_update_artwork );
diff --git a/src/mess/machine/nes_mmc.c b/src/mess/machine/nes_mmc.c
index 8a068ecfef4..5e4bc2f436e 100644
--- a/src/mess/machine/nes_mmc.c
+++ b/src/mess/machine/nes_mmc.c
@@ -137,10 +137,10 @@
#define LOG_FDS(x) do { if (VERBOSE) logerror x; } while (0)
static void ffe_irq( device_t *device, int scanline, int vblank, int blanked );
-static WRITE8_HANDLER( mapper6_l_w );
-static WRITE8_HANDLER( mapper6_w );
-static WRITE8_HANDLER( mapper8_w );
-static WRITE8_HANDLER( mapper17_l_w );
+static DECLARE_WRITE8_HANDLER( mapper6_l_w );
+static DECLARE_WRITE8_HANDLER( mapper6_w );
+static DECLARE_WRITE8_HANDLER( mapper8_w );
+static DECLARE_WRITE8_HANDLER( mapper17_l_w );
/*************************************************************
@@ -222,7 +222,7 @@ WRITE8_HANDLER( nes_low_mapper_w )
nes_state *state = space.machine().driver_data<nes_state>();
if (state->m_mmc_write_low)
- (*state->m_mmc_write_low)(space, offset, data);
+ (*state->m_mmc_write_low)(space, offset, data, mem_mask);
else
logerror("Unimplemented LOW mapper write, offset: %04x, data: %02x\n", offset + 0x4100, data);
}
@@ -232,7 +232,7 @@ READ8_HANDLER( nes_low_mapper_r )
nes_state *state = space.machine().driver_data<nes_state>();
if (state->m_mmc_read_low)
- return (*state->m_mmc_read_low)(space, offset);
+ return (*state->m_mmc_read_low)(space, offset, mem_mask);
else
logerror("Unimplemented LOW mapper read, offset: %04x\n", offset + 0x4100);
diff --git a/src/mess/machine/nes_mmc.h b/src/mess/machine/nes_mmc.h
index 6a75c019336..680693594c1 100644
--- a/src/mess/machine/nes_mmc.h
+++ b/src/mess/machine/nes_mmc.h
@@ -117,19 +117,19 @@ void pcb_handlers_setup(running_machine &machine);
int nes_pcb_reset(running_machine &machine);
-WRITE8_HANDLER( nes_low_mapper_w );
-READ8_HANDLER( nes_low_mapper_r );
-WRITE8_HANDLER( nes_chr_w );
-READ8_HANDLER( nes_chr_r );
-WRITE8_HANDLER( nes_nt_w );
-READ8_HANDLER( nes_nt_r );
+DECLARE_WRITE8_HANDLER( nes_low_mapper_w );
+DECLARE_READ8_HANDLER( nes_low_mapper_r );
+DECLARE_WRITE8_HANDLER( nes_chr_w );
+DECLARE_READ8_HANDLER( nes_chr_r );
+DECLARE_WRITE8_HANDLER( nes_nt_w );
+DECLARE_READ8_HANDLER( nes_nt_r );
-WRITE8_HANDLER( smb2jb_extra_w );
-WRITE8_HANDLER( ks7017_extra_w );
-READ8_HANDLER( ks7017_extra_r );
-WRITE8_HANDLER( unl_6035052_extra_w );
-READ8_HANDLER( unl_6035052_extra_r );
-READ8_HANDLER( waixing_sh2_chr_r );
+DECLARE_WRITE8_HANDLER( smb2jb_extra_w );
+DECLARE_WRITE8_HANDLER( ks7017_extra_w );
+DECLARE_READ8_HANDLER( ks7017_extra_r );
+DECLARE_WRITE8_HANDLER( unl_6035052_extra_w );
+DECLARE_READ8_HANDLER( unl_6035052_extra_r );
+DECLARE_READ8_HANDLER( waixing_sh2_chr_r );
//TEMPORARY PPU STUFF
diff --git a/src/mess/machine/nes_pcb.c b/src/mess/machine/nes_pcb.c
index 7b8a66c65b0..bb2ee8136be 100644
--- a/src/mess/machine/nes_pcb.c
+++ b/src/mess/machine/nes_pcb.c
@@ -1209,7 +1209,7 @@ static WRITE8_HANDLER( fxrom_w )
prg16_89ab(space.machine(), data);
break;
default:
- pxrom_w(space, offset, data);
+ pxrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -1451,7 +1451,7 @@ static WRITE8_HANDLER( hkrom_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -1504,7 +1504,7 @@ static WRITE8_HANDLER( txsrom_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -1582,7 +1582,7 @@ static WRITE8_HANDLER( tqrom_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -2618,7 +2618,7 @@ static WRITE8_HANDLER( namcot3453_w )
if (!(offset & 1))
set_nt_mirroring(space.machine(), BIT(data, 6) ? PPU_MIRROR_HIGH : PPU_MIRROR_LOW);
- dxrom_w(space, offset, data);
+ dxrom_w(space, offset, data, mem_mask);
}
/*************************************************************
@@ -2884,7 +2884,7 @@ static WRITE8_HANDLER( lz93d50_m_w )
LOG_MMC(("lz93d50_m_w, offset: %04x, data: %02x\n", offset, data));
if (!state->m_battery && !state->m_wram)
- lz93d50_w(space, offset & 0x0f, data);
+ lz93d50_w(space, offset & 0x0f, data, mem_mask);
else if (state->m_battery)
state->m_battery_ram[offset] = data;
else
@@ -2921,7 +2921,7 @@ static WRITE8_HANDLER( fjump2_w )
fjump2_set_prg(space.machine());
break;
default:
- lz93d50_m_w(space, offset & 0x0f, data);
+ lz93d50_m_w(space, offset & 0x0f, data, mem_mask);
break;
}
}
@@ -4167,7 +4167,7 @@ static WRITE8_HANDLER( tc0190fmc_p16_w )
case 0x2001:
case 0x2002:
case 0x2003:
- tc0190fmc_w(space, offset, data);
+ tc0190fmc_w(space, offset, data, mem_mask);
break;
case 0x4000:
state->m_IRQ_count_latch = (0x100 - data) & 0xff;
@@ -4290,7 +4290,7 @@ static WRITE8_HANDLER( x1005a_m_w )
break;
}
- x1005_m_w(space, offset, data);
+ x1005_m_w(space, offset, data, mem_mask);
}
/*************************************************************
@@ -5769,7 +5769,7 @@ static WRITE8_HANDLER( kay_pp_w )
switch (offset & 0x6003)
{
case 0x0000:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
mmc3_set_prg(space.machine(), state->m_mmc_prg_base, state->m_mmc_prg_mask);
break;
@@ -5778,19 +5778,19 @@ static WRITE8_HANDLER( kay_pp_w )
| (BIT(data, 3) << 2) | (BIT(data, 4) << 1) | BIT(data, 5);
if (!state->m_mmc_reg[7])
kay_pp_update_regs(space.machine());
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
mmc3_set_prg(space.machine(), state->m_mmc_prg_base, state->m_mmc_prg_mask);
break;
case 0x0003:
state->m_mmc_reg[5] = data;
kay_pp_update_regs(space.machine());
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
mmc3_set_prg(space.machine(), state->m_mmc_prg_base, state->m_mmc_prg_mask);
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -5985,7 +5985,7 @@ static WRITE8_HANDLER( nitra_w )
{
LOG_MMC(("nitra_w, offset: %04x, data: %02x\n", offset, data));
- txrom_w(space, (offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff);
+ txrom_w(space, (offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff, mem_mask);
}
/*************************************************************
@@ -6387,7 +6387,7 @@ static WRITE8_HANDLER( rex_sl1632_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -6811,14 +6811,14 @@ static WRITE8_HANDLER( tcu01_m_w )
{
LOG_MMC(("tcu01_m_w, offset: %04x, data: %02x\n", offset, data));
- tcu01_l_w(space, (offset + 0x100) & 0xfff, data);
+ tcu01_l_w(space, (offset + 0x100) & 0xfff, data, mem_mask);
}
static WRITE8_HANDLER( tcu01_w )
{
LOG_MMC(("tcu01_w, offset: %04x, data: %02x\n", offset, data));
- tcu01_l_w(space, (offset + 0x100) & 0xfff, data);
+ tcu01_l_w(space, (offset + 0x100) & 0xfff, data, mem_mask);
}
/*************************************************************
@@ -7047,57 +7047,57 @@ static WRITE8_HANDLER( sgame_boog_w )
{
case 0x0000:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
break;
case 0x0001:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
else if (state->m_mmc_reg[3] && ((state->m_mmc_reg[0] & 0x80) == 0 || (state->m_mmc_latch1 & 0x07) < 6)) // if we use the prg16 banks and cmd=6,7 DON'T enter!
{
state->m_mmc_reg[3] = 0;
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
}
break;
case 0x2000:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x2000, data);
+ txrom_w(space, 0x2000, data, mem_mask);
else
{
data = (data & 0xc0) | conv_table[data & 0x07];
state->m_mmc_reg[3] = 1;
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
break;
}
break;
case 0x4000:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x4000, data);
+ txrom_w(space, 0x4000, data, mem_mask);
else
set_nt_mirroring(space.machine(), ((data >> 7) | data) & 0x01 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
break;
case 0x4001:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x4001, data);
+ txrom_w(space, 0x4001, data, mem_mask);
else
- txrom_w(space, 0x6001, data);
+ txrom_w(space, 0x6001, data, mem_mask);
break;
case 0x6001:
if (!state->m_mmc_reg[2])
- txrom_w(space, 0x6001, data);
+ txrom_w(space, 0x6001, data, mem_mask);
else
{
- txrom_w(space, 0x4000, data);
- txrom_w(space, 0x4001, data);
+ txrom_w(space, 0x4000, data, mem_mask);
+ txrom_w(space, 0x4001, data, mem_mask);
}
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -7149,13 +7149,13 @@ static WRITE8_HANDLER( sgame_lion_w )
case 0x2000:
state->m_map114_reg_enabled = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
break;
case 0x4000:
if (state->m_map114_reg_enabled && (state->m_map114_reg & 0x80) == 0)
{
state->m_map114_reg_enabled = 0;
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
}
break;
}
@@ -7165,12 +7165,12 @@ static WRITE8_HANDLER( sgame_lion_w )
switch (offset & 0x03)
{
case 0x02:
- txrom_w(space, 0x6000, data);
+ txrom_w(space, 0x6000, data, mem_mask);
break;
case 0x03:
- txrom_w(space, 0x6001, data);
- txrom_w(space, 0x4000, data);
- txrom_w(space, 0x4001, data);
+ txrom_w(space, 0x6001, data, mem_mask);
+ txrom_w(space, 0x4000, data, mem_mask);
+ txrom_w(space, 0x4001, data, mem_mask);
break;
}
}
@@ -7452,7 +7452,7 @@ static WRITE8_HANDLER( tengen_800037_w )
break;
default:
- tengen_800032_w(space, offset, data);
+ tengen_800032_w(space, offset, data, mem_mask);
break;
}
}
@@ -7577,7 +7577,7 @@ static WRITE8_HANDLER( txc_tw_m_w )
{
LOG_MMC(("txctw_m_w, offset: %04x, data: %04x\n", offset, data));
- txc_tw_l_w(space, offset & 0xff, data); // offset does not really count for this mapper
+ txc_tw_l_w(space, offset & 0xff, data, mem_mask); // offset does not really count for this mapper
}
/* writes to 0x8000-0xffff are like MMC3 but no PRG bankswitch (beacuse it is handled by low writes) */
@@ -7705,7 +7705,7 @@ static WRITE8_HANDLER( waixing_a_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -7829,11 +7829,11 @@ static WRITE8_HANDLER( waixing_f_w )
mmc3_set_prg(space.machine(), state->m_mmc_prg_base, state->m_mmc_prg_mask);
}
else
- waixing_a_w(space, offset, data);
+ waixing_a_w(space, offset, data, mem_mask);
break;
default:
- waixing_a_w(space, offset, data);
+ waixing_a_w(space, offset, data, mem_mask);
break;
}
}
@@ -7919,7 +7919,7 @@ static WRITE8_HANDLER( waixing_g_w )
break;
default:
- waixing_a_w(space, offset, data);
+ waixing_a_w(space, offset, data, mem_mask);
break;
}
}
@@ -7961,9 +7961,9 @@ static WRITE8_HANDLER( waixing_h_w )
state->m_mmc_prg_base = (data << 5) & 0x40;
state->m_mmc_prg_mask = 0x3f;
mmc3_set_prg(space.machine(), state->m_mmc_prg_base, state->m_mmc_prg_mask);
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
break;
@@ -7972,7 +7972,7 @@ static WRITE8_HANDLER( waixing_h_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -8399,7 +8399,7 @@ static WRITE8_HANDLER( unl_8237_w )
case 0x3000:
state->m_mmc_reg[2] = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
break;
case 0x4000:
@@ -8407,7 +8407,7 @@ static WRITE8_HANDLER( unl_8237_w )
if (state->m_mmc_reg[2])
{
state->m_mmc_reg[2] = 0;
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
}
break;
@@ -8415,9 +8415,9 @@ static WRITE8_HANDLER( unl_8237_w )
break;
case 0x7000:
- txrom_w(space, 0x6001, data);
- txrom_w(space, 0x4000, data);
- txrom_w(space, 0x4001, data);
+ txrom_w(space, 0x6001, data, mem_mask);
+ txrom_w(space, 0x4000, data, mem_mask);
+ txrom_w(space, 0x4001, data, mem_mask);
break;
}
}
@@ -8538,22 +8538,22 @@ static WRITE8_HANDLER( unl_kof97_w )
if (offset == 0x1000)
{
data = unl_kof97_unscramble(data);
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
}
else if (offset == 0x2000)
{
data = unl_kof97_unscramble(data);
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
}
else if (offset == 0x5000)
{
data = unl_kof97_unscramble(data);
- txrom_w(space, 0x4001, data);
+ txrom_w(space, 0x4001, data, mem_mask);
}
else if (offset == 0x7000)
{
data = unl_kof97_unscramble(data);
- txrom_w(space, 0x6001, data);
+ txrom_w(space, 0x6001, data, mem_mask);
}
else /* Other addresses behaves like MMC3, up to unscrambling data */
{
@@ -8568,7 +8568,7 @@ static WRITE8_HANDLER( unl_kof97_w )
case 0x2000: /* are these ever called?!? */
case 0x2001:
data = unl_kof97_unscramble(data);
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -8590,7 +8590,7 @@ static WRITE8_HANDLER( ks7057_w )
{
LOG_MMC(("ks7057_w, offset: %04x, data: %02x\n", offset, data));
offset = (BIT(offset, 0) << 1) | BIT(offset, 1) | (offset & ~0x03);
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
}
/*************************************************************
@@ -8785,12 +8785,12 @@ static WRITE8_HANDLER( kof96_w )
{
case 0x0000:
state->m_mmc_reg[2] = 1;
- txrom_w(space, 0x0000, data);
+ txrom_w(space, 0x0000, data, mem_mask);
break;
case 0x0001:
if (state->m_mmc_reg[2])
- txrom_w(space, 0x0001, data);
+ txrom_w(space, 0x0001, data, mem_mask);
break;
case 0x0002:
@@ -8806,7 +8806,7 @@ static WRITE8_HANDLER( kof96_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -9172,7 +9172,7 @@ static WRITE8_HANDLER( unl_sf3_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -9290,7 +9290,7 @@ static WRITE8_HANDLER( btl_smb11_w )
{
LOG_MMC(("btl_smb11_w, offset: %04x, data: %02x\n", offset, data));
- txrom_w(space, (offset & 0x6000) | ((offset & 0x04) >> 2), data);
+ txrom_w(space, (offset & 0x6000) | ((offset & 0x04) >> 2), data, mem_mask);
}
/*************************************************************
@@ -9589,7 +9589,7 @@ static WRITE8_HANDLER( btl_pika_y2k_w )
case 0x2000:
state->m_mmc_reg[0] = 0;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -9759,7 +9759,7 @@ static WRITE8_HANDLER( fk23c_w )
fk23c_set_chr(space.machine());
}
else
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
case 0x2000:
@@ -9767,7 +9767,7 @@ static WRITE8_HANDLER( fk23c_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -10684,7 +10684,7 @@ static WRITE8_HANDLER( bmc_sbig7_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -11033,7 +11033,7 @@ static WRITE8_HANDLER( bmc_gc6in1_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -11042,7 +11042,7 @@ static WRITE8_HANDLER( bmc_gc6in1_w )
switch (offset & 0x6001)
{
case 0x0000:
- txrom_w(space, 0x4000, data);
+ txrom_w(space, 0x4000, data, mem_mask);
break;
case 0x0001:
@@ -11088,7 +11088,7 @@ static WRITE8_HANDLER( bmc_gc6in1_w )
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -11382,11 +11382,11 @@ static WRITE8_HANDLER( h2288_w )
switch (offset & 0x6001)
{
case 0x0000:
- txrom_w(space, 0x0000, (data & 0xc0) | conv_table[data & 0x07]);
+ txrom_w(space, 0x0000, (data & 0xc0) | conv_table[data & 0x07], mem_mask);
break;
default:
- txrom_w(space, offset, data);
+ txrom_w(space, offset, data, mem_mask);
break;
}
}
@@ -11802,9 +11802,9 @@ static WRITE8_HANDLER( someri_w )
switch (state->m_mmc_cmd1)
{
- case 0x00: someri_vrc2_w(space, offset, data); break;
- case 0x01: someri_mmc3_w(space, offset, data); break;
- case 0x02: someri_mmc1_w(space, offset, data); break;
+ case 0x00: someri_vrc2_w(space, offset, data, mem_mask); break;
+ case 0x01: someri_mmc3_w(space, offset, data, mem_mask); break;
+ case 0x02: someri_mmc1_w(space, offset, data, mem_mask); break;
}
}
diff --git a/src/mess/machine/partner.c b/src/mess/machine/partner.c
index 19c5b09aca6..a2cfd608be1 100644
--- a/src/mess/machine/partner.c
+++ b/src/mess/machine/partner.c
@@ -366,8 +366,8 @@ static WRITE_LINE_DEVICE_HANDLER( hrq_w )
i8257_hlda_w(device, state);
}
-static UINT8 memory_read_byte(address_space &space, offs_t address) { return space.read_byte(address); }
-static void memory_write_byte(address_space &space, offs_t address, UINT8 data) { space.write_byte(address, data); }
+static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
+static void memory_write_byte(address_space &space, offs_t address, UINT8 data, UINT8 mem_mask) { space.write_byte(address, data); }
I8257_INTERFACE( partner_dma )
{
diff --git a/src/mess/machine/pc_fdc.c b/src/mess/machine/pc_fdc.c
index 80feb880aec..9a6a33cbbde 100644
--- a/src/mess/machine/pc_fdc.c
+++ b/src/mess/machine/pc_fdc.c
@@ -531,7 +531,7 @@ WRITE8_HANDLER ( pc_fdc_w )
case 1: /* n/a */
break;
case 2:
- pc_fdc_dor_w(space, 0, data);
+ pc_fdc_dor_w(space, 0, data, mem_mask);
break;
case 3:
/* tape drive select? */
@@ -568,7 +568,7 @@ WRITE8_HANDLER ( pcjr_fdc_w )
switch(offset)
{
case 2:
- pcjr_fdc_dor_w( space, 0, data );
+ pcjr_fdc_dor_w( space, 0, data, mem_mask );
break;
case 4:
case 7:
diff --git a/src/mess/machine/pc_fdc.h b/src/mess/machine/pc_fdc.h
index 9317fea12a2..a5b32975a9a 100644
--- a/src/mess/machine/pc_fdc.h
+++ b/src/mess/machine/pc_fdc.h
@@ -43,9 +43,9 @@ void pc_fdc_set_tc_state(running_machine &machine, int state);
int pc_fdc_dack_r(running_machine &machine, address_space &space);
void pc_fdc_dack_w(running_machine &machine, address_space &space, int data);
-READ8_HANDLER(pc_fdc_r);
-WRITE8_HANDLER(pc_fdc_w);
-WRITE8_HANDLER ( pcjr_fdc_w );
+DECLARE_READ8_HANDLER(pc_fdc_r);
+DECLARE_WRITE8_HANDLER(pc_fdc_w);
+DECLARE_WRITE8_HANDLER ( pcjr_fdc_w );
#endif /* PC_FDC_H */
diff --git a/src/mess/machine/pc_joy.h b/src/mess/machine/pc_joy.h
index 28f9bf88d29..381f1821347 100644
--- a/src/mess/machine/pc_joy.h
+++ b/src/mess/machine/pc_joy.h
@@ -11,8 +11,8 @@
#include "emu.h"
-READ8_HANDLER ( pc_JOY_r );
-WRITE8_HANDLER ( pc_JOY_w );
+DECLARE_READ8_HANDLER ( pc_JOY_r );
+DECLARE_WRITE8_HANDLER ( pc_JOY_w );
INPUT_PORTS_EXTERN( pc_joystick_none );
INPUT_PORTS_EXTERN( pc_joystick );
diff --git a/src/mess/machine/radio86.c b/src/mess/machine/radio86.c
index 01b7e70d555..b03e7a67996 100644
--- a/src/mess/machine/radio86.c
+++ b/src/mess/machine/radio86.c
@@ -140,8 +140,8 @@ static WRITE_LINE_DEVICE_HANDLER( hrq_w )
i8257_hlda_w(device, state);
}
-static UINT8 memory_read_byte(address_space &space, offs_t address) { return space.read_byte(address); }
-static void memory_write_byte(address_space &space, offs_t address, UINT8 data) { space.write_byte(address, data); }
+static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
+static void memory_write_byte(address_space &space, offs_t address, UINT8 data, UINT8 mem_mask) { space.write_byte(address, data); }
I8257_INTERFACE( radio86_dma )
{
diff --git a/src/mess/machine/sgi.h b/src/mess/machine/sgi.h
index 0b8591fac2a..71ef1369e66 100644
--- a/src/mess/machine/sgi.h
+++ b/src/mess/machine/sgi.h
@@ -11,8 +11,8 @@
void sgi_mc_init(running_machine &machine);
-READ32_HANDLER(sgi_mc_r);
-WRITE32_HANDLER(sgi_mc_w);
+DECLARE_READ32_HANDLER(sgi_mc_r);
+DECLARE_WRITE32_HANDLER(sgi_mc_w);
#endif /* _SGIMC_H */
diff --git a/src/mess/machine/sst39vfx.h b/src/mess/machine/sst39vfx.h
index 3fbdb852e6b..2b18df7b0eb 100644
--- a/src/mess/machine/sst39vfx.h
+++ b/src/mess/machine/sst39vfx.h
@@ -84,8 +84,8 @@ UINT32 sst39vfx_get_size( device_t *device );
// read/write handler
#if 0
-READ8_HANDLER( sst39vfx_r );
-WRITE8_HANDLER( sst39vfx_w );
+DECLARE_READ8_HANDLER( sst39vfx_r );
+DECLARE_WRITE8_HANDLER( sst39vfx_w );
#endif
// load/save
diff --git a/src/mess/machine/thomflop.c b/src/mess/machine/thomflop.c
index 1d7dd4fe31f..7c66e5f5b0e 100644
--- a/src/mess/machine/thomflop.c
+++ b/src/mess/machine/thomflop.c
@@ -1824,19 +1824,19 @@ READ8_HANDLER ( to7_floppy_r )
{
case 1:
- return to7_5p14sd_r( space, offset );
+ return to7_5p14sd_r( space, offset, mem_mask );
case 2:
- return to7_5p14_r( space, offset );
+ return to7_5p14_r( space, offset, mem_mask );
case 3:
return thmfc_floppy_r( space, offset );
case 4:
- return to7_qdd_r( space, offset );
+ return to7_qdd_r( space, offset, mem_mask );
case 5:
- return to7_network_r( space, offset );
+ return to7_network_r( space, offset, mem_mask );
}
return 0;
@@ -1850,11 +1850,11 @@ WRITE8_HANDLER ( to7_floppy_w )
{
case 1:
- to7_5p14sd_w( space, offset, data );
+ to7_5p14sd_w( space, offset, data, mem_mask );
return;
case 2:
- to7_5p14_w( space, offset, data );
+ to7_5p14_w( space, offset, data, mem_mask );
break;
case 3:
@@ -1869,11 +1869,11 @@ WRITE8_HANDLER ( to7_floppy_w )
break;
case 4:
- to7_qdd_w( space, offset, data );
+ to7_qdd_w( space, offset, data, mem_mask );
break;
case 5:
- to7_network_w( space, offset, data );
+ to7_network_w( space, offset, data, mem_mask );
break;
}
}
@@ -1918,7 +1918,7 @@ READ8_HANDLER ( to9_floppy_r )
if ( THOM_FLOPPY_EXT )
return to7_floppy_r( space, offset );
else
- return to7_5p14_r( space, offset );
+ return to7_5p14_r( space, offset, mem_mask );
}
WRITE8_HANDLER ( to9_floppy_w )
@@ -1926,7 +1926,7 @@ WRITE8_HANDLER ( to9_floppy_w )
if ( THOM_FLOPPY_EXT )
to7_floppy_w( space, offset, data );
else
- to7_5p14_w( space, offset, data );
+ to7_5p14_w( space, offset, data, mem_mask );
}
WRITE_LINE_DEVICE_HANDLER(thomson_index_callback)
diff --git a/src/mess/machine/thomflop.h b/src/mess/machine/thomflop.h
index b1f21b87453..0a49e54cb9e 100644
--- a/src/mess/machine/thomflop.h
+++ b/src/mess/machine/thomflop.h
@@ -33,20 +33,20 @@ extern UINT8 to7_floppy_bank;
/* external controllers */
extern void to7_floppy_init ( running_machine &machine, void* base );
extern void to7_floppy_reset ( running_machine &machine );
-extern READ8_HANDLER ( to7_floppy_r );
-extern WRITE8_HANDLER ( to7_floppy_w );
+extern DECLARE_READ8_HANDLER ( to7_floppy_r );
+extern DECLARE_WRITE8_HANDLER ( to7_floppy_w );
/* TO9 internal (WD2793) & external controllers */
extern void to9_floppy_init ( running_machine &machine, void* int_base, void* ext_base );
extern void to9_floppy_reset ( running_machine &machine );
-extern READ8_HANDLER ( to9_floppy_r );
-extern WRITE8_HANDLER ( to9_floppy_w );
+extern DECLARE_READ8_HANDLER ( to9_floppy_r );
+extern DECLARE_WRITE8_HANDLER ( to9_floppy_w );
/* TO8 internal (THMFC1) controller */
extern void thmfc_floppy_init ( running_machine &machine );
extern void thmfc_floppy_reset ( running_machine &machine );
-extern READ8_HANDLER ( thmfc_floppy_r );
-extern WRITE8_HANDLER ( thmfc_floppy_w );
+extern DECLARE_READ8_HANDLER ( thmfc_floppy_r );
+extern DECLARE_WRITE8_HANDLER ( thmfc_floppy_w );
extern WRITE_LINE_DEVICE_HANDLER(thomson_index_callback);
diff --git a/src/mess/machine/ti990.h b/src/mess/machine/ti990.h
index b26ccb47de7..ee683321e2c 100644
--- a/src/mess/machine/ti990.h
+++ b/src/mess/machine/ti990.h
@@ -14,8 +14,8 @@ void ti990_set_int13(running_machine &machine, int state);
void ti990_hold_load(running_machine &machine);
- READ8_HANDLER ( ti990_panel_read );
-WRITE8_HANDLER ( ti990_panel_write );
+ DECLARE_READ8_HANDLER ( ti990_panel_read );
+DECLARE_WRITE8_HANDLER ( ti990_panel_write );
void ti990_line_interrupt(running_machine &machine);
void ti990_ckon_ckof_callback(device_t *device, int state);