Cleanup using state object

This commit is contained in:
Miodrag Milanovic 2022-06-15 08:29:55 +02:00
parent 321bdd5e58
commit 62fd9b344d
7 changed files with 22 additions and 25 deletions

View File

@ -250,6 +250,7 @@ private:
uint8_t amstrad_ppi_portb_r();
void amstrad_ppi_portc_w(uint8_t data);
device_t* get_expansion_device(const char* tag);
DECLARE_WRITE_LINE_MEMBER( cpc_romdis );
void rom_select(uint8_t data);

View File

@ -105,6 +105,7 @@ private:
void at_dma8237_1_w(offs_t offset, uint8_t data);
uint8_t bebox_dma_read_byte(offs_t offset);
void bebox_dma_write_byte(offs_t offset, uint8_t data);
inline void set_dma_channel(int channel, int state);
uint64_t scsi53c810_r(offs_t offset, uint64_t mem_mask = ~0);
void scsi53c810_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
uint64_t bb_slave_64be_r(offs_t offset, uint64_t mem_mask = ~0);

View File

@ -215,8 +215,8 @@ private:
void UpdateBanks(int first, int last);
void SetDefaultTask();
void dgn_beta_bank_memory(int offset, int data, int bank);
int SelectedKeyrow(dgn_beta_state *state, int Rows);
int GetKeyRow(dgn_beta_state *state, int RowNo);
int SelectedKeyrow(int Rows);
int GetKeyRow(int RowNo);
void cpu0_recalc_irq(int state);
void cpu0_recalc_firq(int state);
void cpu1_recalc_firq(int state);

View File

@ -1069,11 +1069,9 @@ uint32_t amstrad_state::screen_update_amstrad(screen_device &screen, bitmap_ind1
/* traverses the daisy-chain of expansion devices, looking for the specified device */
static device_t* get_expansion_device(running_machine &machine, const char* tag)
device_t* amstrad_state::get_expansion_device(const char* tag)
{
amstrad_state *state = machine.driver_data<amstrad_state>();
cpc_expansion_slot_device* exp_port = state->m_exp;
cpc_expansion_slot_device* exp_port = m_exp;
while (exp_port != nullptr)
{
device_t* temp;
@ -2166,7 +2164,7 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which
m_crtc->set_unscaled_clock( ( m_aleste_mode & 0x02 ) ? ( XTAL(16'000'000) / 8 ) : ( XTAL(16'000'000) / 16 ) );
}
mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(machine(),"multiface2"));
mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device("multiface2"));
if(mface2 != nullptr)
{
if(mface2->multiface_io_write(offset, data) != 0)
@ -2399,7 +2397,7 @@ void amstrad_state::amstrad_rethinkMemory()
}
/* multiface hardware enabled? */
mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(machine(),"multiface2"));
mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device("multiface2"));
if(mface2 != nullptr)
{
if (mface2->multiface_hardware_enabled())
@ -2432,7 +2430,7 @@ WRITE_LINE_MEMBER(amstrad_state::screen_vblank_amstrad)
// rising edge
if (state)
{
cpc_multiface2_device* mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(machine(),"multiface2"));
cpc_multiface2_device* mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device("multiface2"));
if(mface2 != nullptr)
{
@ -2975,7 +2973,7 @@ void amstrad_state::enumerate_roms()
/* add ROMs from ROMbox expansion */
device_t* romexp = get_expansion_device(machine(),"rom");
device_t* romexp = get_expansion_device("rom");
if(romexp)
{
for(int i = 0; i < 8; i++)

View File

@ -551,16 +551,15 @@ WRITE_LINE_MEMBER(bebox_state::bebox_dma8237_out_eop){
m_smc37c78->tc_w(state);
}
static void set_dma_channel(running_machine &machine, int channel, int state)
inline void bebox_state::set_dma_channel(int channel, int state)
{
bebox_state *drvstate = machine.driver_data<bebox_state>();
if (!state) drvstate->m_dma_channel = channel;
if (!state) m_dma_channel = channel;
}
WRITE_LINE_MEMBER(bebox_state::pc_dack0_w){ set_dma_channel(machine(), 0, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack1_w){ set_dma_channel(machine(), 1, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack2_w){ set_dma_channel(machine(), 2, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack3_w){ set_dma_channel(machine(), 3, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack0_w){ set_dma_channel(0, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack1_w){ set_dma_channel(1, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack2_w){ set_dma_channel(2, state); }
WRITE_LINE_MEMBER(bebox_state::pc_dack3_w){ set_dma_channel(3, state); }
/*************************************
*

View File

@ -260,7 +260,7 @@ than using a walking zero as the OS-9 driver does. This meant that SelectKeyrow
never moved past the first row, by scanning for the last active row
the beta_test rom works, and it does not break the OS-9 driver :)
*/
int dgn_beta_state::SelectedKeyrow(dgn_beta_state *state, int Rows)
int dgn_beta_state::SelectedKeyrow(int Rows)
{
int Idx;
int Row; /* Row selected */
@ -288,7 +288,7 @@ int dgn_beta_state::SelectedKeyrow(dgn_beta_state *state, int Rows)
/* GetKeyRow, returns the value of a keyrow, checking for invalid rows */
/* and returning no key pressed if row is invalid */
int dgn_beta_state::GetKeyRow(dgn_beta_state *state, int RowNo)
int dgn_beta_state::GetKeyRow(int RowNo)
{
if(RowNo==INVALID_KEYROW)
return NO_KEY_PRESSED; /* row is invalid, so return no key down */
@ -336,7 +336,7 @@ uint8_t dgn_beta_state::d_pia0_pb_r()
m_KAny_next = 0;
Selected = SelectedKeyrow(this, m_RowShifter);
Selected = SelectedKeyrow(m_RowShifter);
/* Scan the whole keyboard, if output shifter is all low */
/* This actually scans in the keyboard */
@ -352,7 +352,7 @@ uint8_t dgn_beta_state::d_pia0_pb_r()
}
else /* Just scan current row, from previously read values */
{
if(GetKeyRow(this, Selected) != NO_KEY_PRESSED)
if(GetKeyRow(Selected) != NO_KEY_PRESSED)
m_KAny_next = 1;
}
@ -398,8 +398,8 @@ WRITE_LINE_MEMBER(dgn_beta_state::d_pia0_cb2_w)
/* load keyrow on rising edge of CB2 */
if((state==1) && (m_d_pia0_cb2_last==0))
{
RowNo=SelectedKeyrow(this, m_RowShifter);
m_Keyrow=GetKeyRow(this, RowNo);
RowNo=SelectedKeyrow(m_RowShifter);
m_Keyrow=GetKeyRow(RowNo);
/* Output clock rising edge, clock CB2 value into rowshifterlow to high transition */
/* In the beta the shift registers are a cmos 4015, and a cmos 4013 in series */

View File

@ -1113,8 +1113,6 @@ uint32_t n64_periphs::vi_reg_r(offs_t offset, uint32_t mem_mask)
void n64_periphs::vi_reg_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
//n64_state *state = machine().driver_data<n64_state>();
switch (offset)
{
case 0x00/4: // VI_CONTROL_REG