From bc150a011757c069fb621d436bb62f85bf5d2cfc Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 20 Apr 2018 10:58:12 -0400 Subject: [PATCH] rmnimbus: Clean up some static functions (nw) --- src/mame/includes/rmnimbus.h | 9 +++ src/mame/machine/rmnimbus.cpp | 108 +++++++++++++++------------------- 2 files changed, 58 insertions(+), 59 deletions(-) diff --git a/src/mame/includes/rmnimbus.h b/src/mame/includes/rmnimbus.h index faaef72196b..1b6dc593f59 100644 --- a/src/mame/includes/rmnimbus.h +++ b/src/mame/includes/rmnimbus.h @@ -240,6 +240,15 @@ public: void decode_dos21(device_t *device, offs_t pc); private: + void decode_dssi_none(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_generic(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_f_fill_area(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_f_plot_character_string(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_f_set_new_clt(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_f_plonk_char(uint16_t ds, uint16_t si, uint8_t raw_flag); + void decode_dssi_f_rw_sectors(uint16_t ds, uint16_t si, uint8_t raw_flag); + + void debug_command(int ref, const std::vector ¶ms); void video_debug(int ref, const std::vector ¶ms); }; diff --git a/src/mame/machine/rmnimbus.cpp b/src/mame/machine/rmnimbus.cpp index e3a9a70899a..718efce47be 100644 --- a/src/mame/machine/rmnimbus.cpp +++ b/src/mame/machine/rmnimbus.cpp @@ -120,7 +120,7 @@ enum #define LINEAR_ADDR(seg,ofs) ((seg<<4)+ofs) -#define OUTPUT_SEGOFS(mess,seg,ofs) device->logerror("%s=%04X:%04X [%08X]\n",mess,seg,ofs,((seg<<4)+ofs)) +#define OUTPUT_SEGOFS(mess,seg,ofs) logerror("%s=%04X:%04X [%08X]\n",mess,seg,ofs,((seg<<4)+ofs)) #define LOG_SIO 0 #define LOG_DISK_HDD 0 @@ -177,12 +177,6 @@ struct t_nimbus_brush static int instruction_hook(device_t &device, offs_t curpc); -static void decode_dssi_generic(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); -static void decode_dssi_f_fill_area(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); -static void decode_dssi_f_plot_character_string(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); -static void decode_dssi_f_set_new_clt(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); -static void decode_dssi_f_plonk_char(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); -static void decode_dssi_f_rw_sectors(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag); void rmnimbus_state::external_int(uint8_t vector, bool state) { @@ -294,7 +288,7 @@ void rmnimbus_state::decode_subbios(device_t *device,offs_t pc, uint8_t raw_flag char drv_str[80]; char func_str[80]; - void (*dump_dssi)(device_t *,uint16_t, uint16_t ,uint8_t) = nullptr; + void (rmnimbus_state::*dump_dssi)(uint16_t, uint16_t, uint8_t) = &rmnimbus_state::decode_dssi_none; uint16_t ax = m_maincpu->state_int(I8086_AX); uint16_t bx = m_maincpu->state_int(I8086_BX); @@ -375,14 +369,14 @@ void rmnimbus_state::decode_subbios(device_t *device,offs_t pc, uint8_t raw_flag case 1 : set_func("f_initialise_unit"); break; case 2 : set_func("f_pseudo_init_unit"); break; case 3 : set_func("f_get_device_status"); break; - case 4 : set_func("f_read_n_sectors"); dump_dssi=&decode_dssi_f_rw_sectors; break; - case 5 : set_func("f_write_n_sectors"); dump_dssi=&decode_dssi_f_rw_sectors; break; + case 4 : set_func("f_read_n_sectors"); dump_dssi = &rmnimbus_state::decode_dssi_f_rw_sectors; break; + case 5 : set_func("f_write_n_sectors"); dump_dssi = &rmnimbus_state::decode_dssi_f_rw_sectors; break; case 6 : set_func("f_verify_n_sectors"); break; case 7 : set_func("f_media_check"); break; case 8 : set_func("f_recalibrate"); break; case 9 : set_func("f_motors_off"); break; } - dump_dssi=&decode_dssi_f_rw_sectors; + dump_dssi = &rmnimbus_state::decode_dssi_f_rw_sectors; }; break; @@ -466,17 +460,17 @@ void rmnimbus_state::decode_subbios(device_t *device,offs_t pc, uint8_t raw_flag case 3 : set_func("f_graphics_output_off"); break; case 4 : set_func("f_reinit_graphics_output"); break; case 5 : set_func("f_polymarker"); break; - case 6 : set_func("f_polyline"); dump_dssi=&decode_dssi_f_fill_area; break; - case 7 : set_func("f_fill_area"); dump_dssi=&decode_dssi_f_fill_area; break; + case 6 : set_func("f_polyline"); dump_dssi = &rmnimbus_state::decode_dssi_f_fill_area; break; + case 7 : set_func("f_fill_area"); dump_dssi = &rmnimbus_state::decode_dssi_f_fill_area; break; case 8 : set_func("f_flood_fill_area"); break; - case 9 : set_func("f_plot_character_string"); dump_dssi=&decode_dssi_f_plot_character_string; break; + case 9 : set_func("f_plot_character_string"); dump_dssi = &rmnimbus_state::decode_dssi_f_plot_character_string; break; case 10 : set_func("f_define_graphics_clipping_area"); break; case 11 : set_func("f_enquire_clipping_area_limits"); break; case 12 : set_func("f_select_graphics_clipping_area"); break; case 13 : set_func("f_enq_selctd_graphics_clip_area"); break; case 14 : set_func("f_set_clt_element"); break; case 15 : set_func("f_enquire_clt_element"); break; - case 16 : set_func("f_set_new_clt"); dump_dssi=&decode_dssi_f_set_new_clt; break; + case 16 : set_func("f_set_new_clt"); dump_dssi = &rmnimbus_state::decode_dssi_f_set_new_clt; break; case 17 : set_func("f_enquire_clt_contents"); break; case 18 : set_func("f_define_dithering_pattern"); break; case 19 : set_func("f_enquire_dithering_pattern"); break; @@ -539,11 +533,11 @@ void rmnimbus_state::decode_subbios(device_t *device,offs_t pc, uint8_t raw_flag switch(ax) { case 0 : set_func("f_get_version_number"); break; - case 1 : set_func("f_plonk_char"); dump_dssi=decode_dssi_f_plonk_char; break; + case 1 : set_func("f_plonk_char"); dump_dssi = &rmnimbus_state::decode_dssi_f_plonk_char; break; case 2 : set_func("f_plonk_cursor"); break; case 3 : set_func("f_kill_cursor"); break; case 4 : set_func("f_scroll"); break; - case 5 : set_func("f_width"); dump_dssi=decode_dssi_generic;break; + case 5 : set_func("f_width"); dump_dssi = &rmnimbus_state::decode_dssi_generic; break; case 6 : set_func("f_get_char_set"); break; case 7 : set_func("f_set_char_set"); break; case 8 : set_func("f_reset_char_set"); break; @@ -613,15 +607,13 @@ void rmnimbus_state::decode_subbios(device_t *device,offs_t pc, uint8_t raw_flag if(raw_flag) { - if(dump_dssi!=nullptr) - dump_dssi(device,ds,si,raw_flag); + (this->*dump_dssi)(ds, si, raw_flag); } else { logerror("Type=%s, Driver=%s, Function=%s\n",type_str,drv_str,func_str); - if(dump_dssi!=nullptr) - dump_dssi(device,ds,si,raw_flag); + (this->*dump_dssi)(ds, si, raw_flag); logerror("=======================================================================\n"); } } @@ -636,10 +628,13 @@ static inline void *get_dssi_ptr(address_space &space, uint16_t ds, uint16_t s return space.get_read_ptr(addr); } -static void decode_dssi_generic(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_none(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); +} + +void rmnimbus_state::decode_dssi_generic(uint16_t ds, uint16_t si, uint8_t raw_flag) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); uint16_t *params; int count; @@ -649,16 +644,15 @@ static void decode_dssi_generic(device_t *device,uint16_t ds, uint16_t si, uint params=(uint16_t *)get_dssi_ptr(space,ds,si); for(count=0; count<10; count++) - device->logerror("%04X ",params[count]); + logerror("%04X ",params[count]); - device->logerror("\n"); + logerror("\n"); } -static void decode_dssi_f_fill_area(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_f_fill_area(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); uint16_t *addr_ptr; t_area_params *area_params; @@ -674,18 +668,18 @@ static void decode_dssi_f_fill_area(device_t *device,uint16_t ds, uint16_t si, if(raw_flag) { - device->logerror("\tdw\t%04X, %04X, %04X, %04X, %04X, %04X, %04X, %04X, %04X, ", + logerror("\tdw\t%04X, %04X, %04X, %04X, %04X, %04X, %04X, %04X, %04X, ", brush->style,brush->style_index,brush->colour1,brush->colour2, brush->transparency,brush->boundary_spec,brush->boundary_colour,brush->save_colour, area_params->count); } else { - device->logerror("Brush params\n"); - device->logerror("Style=%04X, StyleIndex=%04X\n",brush->style,brush->style_index); - device->logerror("Colour1=%04X, Colour2=%04X\n",brush->colour1,brush->colour2); - device->logerror("transparency=%04X, boundary_spec=%04X\n",brush->transparency,brush->boundary_spec); - device->logerror("boundary colour=%04X, save colour=%04X\n",brush->boundary_colour,brush->save_colour); + logerror("Brush params\n"); + logerror("Style=%04X, StyleIndex=%04X\n",brush->style,brush->style_index); + logerror("Colour1=%04X, Colour2=%04X\n",brush->colour1,brush->colour2); + logerror("transparency=%04X, boundary_spec=%04X\n",brush->transparency,brush->boundary_spec); + logerror("boundary colour=%04X, save colour=%04X\n",brush->boundary_colour,brush->save_colour); OUTPUT_SEGOFS("SegData:OfsData",area_params->seg_data,area_params->ofs_data); @@ -697,22 +691,21 @@ static void decode_dssi_f_fill_area(device_t *device,uint16_t ds, uint16_t si, if(raw_flag) { if(cocount!=(area_params->count-1)) - device->logerror("%04X, %04X, ",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); + logerror("%04X, %04X, ",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); else - device->logerror("%04X, %04X ",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); + logerror("%04X, %04X ",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); } else - device->logerror("x=%d y=%d\n",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); + logerror("x=%d y=%d\n",addr_ptr[cocount*2],addr_ptr[(cocount*2)+1]); } if(raw_flag) - device->logerror("\n"); + logerror("\n"); } -static void decode_dssi_f_plot_character_string(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_f_plot_character_string(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); uint8_t *char_ptr; t_plot_string_params *plot_string_params; @@ -726,23 +719,22 @@ static void decode_dssi_f_plot_character_string(device_t *device,uint16_t ds, u OUTPUT_SEGOFS("SegFont:OfsFont",plot_string_params->seg_font,plot_string_params->ofs_font); OUTPUT_SEGOFS("SegData:OfsData",plot_string_params->seg_data,plot_string_params->ofs_data); - device->logerror("x=%d, y=%d, length=%d\n",plot_string_params->x,plot_string_params->y,plot_string_params->length); + logerror("x=%d, y=%d, length=%d\n",plot_string_params->x,plot_string_params->y,plot_string_params->length); char_ptr=(uint8_t*)space.get_read_ptr(LINEAR_ADDR(plot_string_params->seg_data,plot_string_params->ofs_data)); if (plot_string_params->length==0xFFFF) - device->logerror("%s",char_ptr); + logerror("%s",char_ptr); else for(charno=0;charnolength;charno++) - device->logerror("%c",char_ptr[charno]); + logerror("%c",char_ptr[charno]); - device->logerror("\n"); + logerror("\n"); } -static void decode_dssi_f_set_new_clt(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_f_set_new_clt(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); uint16_t *new_colours; int colour; new_colours=(uint16_t *)get_dssi_ptr(space,ds,si); @@ -753,14 +745,13 @@ static void decode_dssi_f_set_new_clt(device_t *device,uint16_t ds, uint16_t si OUTPUT_SEGOFS("SegColours:OfsColours",ds,si); for(colour=0;colour<16;colour++) - device->logerror("colour #%02X=%04X\n",colour,new_colours[colour]); + logerror("colour #%02X=%04X\n",colour,new_colours[colour]); } -static void decode_dssi_f_plonk_char(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_f_plonk_char(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); uint16_t *params; params=(uint16_t *)get_dssi_ptr(space,ds,si); @@ -769,13 +760,12 @@ static void decode_dssi_f_plonk_char(device_t *device,uint16_t ds, uint16_t si, OUTPUT_SEGOFS("SegParams:OfsParams",ds,si); - device->logerror("plonked_char=%c\n",params[0]); + logerror("plonked_char=%c\n",params[0]); } -static void decode_dssi_f_rw_sectors(device_t *device,uint16_t ds, uint16_t si, uint8_t raw_flag) +void rmnimbus_state::decode_dssi_f_rw_sectors(uint16_t ds, uint16_t si, uint8_t raw_flag) { - rmnimbus_state *state = device->machine().driver_data(); - address_space &space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = m_maincpu->space(AS_PROGRAM); uint16_t *params; int param_no; @@ -785,9 +775,9 @@ static void decode_dssi_f_rw_sectors(device_t *device,uint16_t ds, uint16_t si, params=(uint16_t *)get_dssi_ptr(space,ds,si); for(param_no=0;param_no<16;param_no++) - device->logerror("%04X ",params[param_no]); + logerror("%04X ",params[param_no]); - device->logerror("\n"); + logerror("\n"); } void rmnimbus_state::decode_dos21(device_t *device,offs_t pc)