Previous 199869 Revisions Next

r20638 Thursday 31st January, 2013 at 15:49:00 UTC by Miodrag Milanović
modernized some pre/postload calls (no whatsnew)
[src/mame/drivers]neogeo.c
[src/mame/includes]neogeo.h
[src/mame/video]neogeo.c
[src/mess/drivers]ng_aes.c
[src/mess/includes]apple2.h b2m.h hp48.h lynx.h mac.h nes.h
[src/mess/machine]apple2.c b2m.c hp48.c lynx.c mac.c nes.c

trunk/src/mame/drivers/neogeo.c
r20637r20638
10131013 *
10141014 *************************************/
10151015
1016void neogeo_postload(running_machine &machine)
1016void neogeo_state::neogeo_postload()
10171017{
1018   neogeo_state *state = machine.driver_data<neogeo_state>();
1019
1020   _set_main_cpu_bank_address(machine);
1021   _set_main_cpu_vector_table_source(machine);
1022   set_audio_cpu_banking(machine);
1023   _set_audio_cpu_rom_source(machine.device("maincpu")->memory().space(AS_PROGRAM));
1024   if (state->m_is_mvs) set_outputs(machine);
1018   _set_main_cpu_bank_address(machine());
1019   _set_main_cpu_vector_table_source(machine());
1020   set_audio_cpu_banking(machine());
1021   _set_audio_cpu_rom_source(machine().device("maincpu")->memory().space(AS_PROGRAM));
1022   if (m_is_mvs) set_outputs(machine());
10251023}
10261024
10271025
r20637r20638
10821080   save_item(NAME(m_led2_value));
10831081   save_item(NAME(m_recurse));
10841082
1085   machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_postload), &machine()));
1083   machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this));
10861084}
10871085
10881086
trunk/src/mame/includes/neogeo.h
r20637r20638
231231   TIMER_CALLBACK_MEMBER(vblank_interrupt_callback);
232232   TIMER_CALLBACK_MEMBER(auto_animation_timer_callback);
233233   TIMER_CALLBACK_MEMBER(sprite_line_timer_callback);
234   void neogeo_postload();
235   void regenerate_pens();
234236
235237   bool m_has_audio_banking; // does the system use Audio Banking (the NeoCD doesn't?)
236238   bool m_is_mvs; // is the system an MVS (watchdog, SRAM etc.)
r20637r20638
253255void neogeo_acknowledge_interrupt(running_machine &machine, UINT16 data);
254256void neogeo_set_main_cpu_bank_address(address_space &space, UINT32 bank_address);
255257DEVICE_IMAGE_LOAD( neo_cartridge );
256void neogeo_postload(running_machine &machine);
257258void neogeo_audio_cpu_banking_init( running_machine &machine );
258259void neogeo_main_cpu_banking_init( running_machine &machine );
259260void neogeo_set_main_cpu_vector_table_source( running_machine &machine, UINT8 data );
trunk/src/mame/video/neogeo.c
r20637r20638
145145}
146146
147147
148static void regenerate_pens(running_machine &machine)
148void neogeo_state::regenerate_pens()
149149{
150   neogeo_state *state = machine.driver_data<neogeo_state>();
151150   int i;
152151
153152   for (i = 0; i < NUM_PENS; i++)
154      state->m_pens[i] = get_pen(machine, state->m_palettes[state->m_palette_bank][i]);
153      m_pens[i] = get_pen(machine(), m_palettes[m_palette_bank][i]);
155154}
156155
157156
r20637r20638
162161   {
163162      state->m_palette_bank = data;
164163
165      regenerate_pens(machine);
164      state->regenerate_pens();
166165   }
167166}
168167
r20637r20638
174173   {
175174      state->m_screen_dark = data;
176175
177      regenerate_pens(machine);
176      state->regenerate_pens();
178177   }
179178}
180179
r20637r20638
886885   save_item(NAME(m_auto_animation_counter));
887886   save_item(NAME(m_auto_animation_frame_counter));
888887
889   machine().save().register_postload(save_prepost_delegate(FUNC(regenerate_pens), &machine()));
888   machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::regenerate_pens), this));
890889
891890   m_region_zoomy = memregion("zoomy")->base();
892891}
trunk/src/mess/machine/b2m.c
r20637r20638
318318   return m_b2m_localmachine;
319319}
320320
321static void b2m_postload(b2m_state *state)
321void b2m_state::b2m_postload()
322322{
323   b2m_set_bank(state->machine(), state->m_b2m_8255_portc & 7);
323   b2m_set_bank(machine(), m_b2m_8255_portc & 7);
324324}
325325
326326void b2m_state::machine_start()
r20637r20638
344344   save_item(NAME(m_b2m_localmachine));
345345   save_item(NAME(m_vblank_state));
346346
347   machine().save().register_postload(save_prepost_delegate(FUNC(b2m_postload), this));
347   machine().save().register_postload(save_prepost_delegate(FUNC(b2m_state::b2m_postload), this));
348348}
349349
350350IRQ_CALLBACK_MEMBER(b2m_state::b2m_irq_callback)
trunk/src/mess/machine/apple2.c
r20637r20638
284284
285285
286286
287static void apple2_update_memory_postload(apple2_state *state)
287void apple2_state::apple2_update_memory_postload()
288288{
289   apple2_update_memory(state->machine());
289   apple2_update_memory(machine());
290290}
291291
292292
r20637r20638
17641764
17651765   /* state save registers */
17661766   state->save_item(NAME(state->m_flags));
1767   machine.save().register_postload(save_prepost_delegate(FUNC(apple2_update_memory_postload), state));
1767   machine.save().register_postload(save_prepost_delegate(FUNC(apple2_state::apple2_update_memory_postload), state));
17681768
17691769   /* --------------------------------------------- *
17701770    * set up the softswitch mask/set                *
trunk/src/mess/machine/lynx.c
r20637r20638
19531953#endif
19541954}
19551955
1956static void lynx_postload(lynx_state *state)
1956void lynx_state::lynx_postload()
19571957{
1958   state->lynx_memory_config_w( state->machine().device("maincpu")->memory().space(AS_PROGRAM), 0, state->m_memory_config);
1958   lynx_memory_config_w(machine().device("maincpu")->memory().space(AS_PROGRAM), 0, m_memory_config);
19591959}
19601960
19611961void lynx_state::machine_start()
r20637r20638
19651965   int i;
19661966   save_item(NAME(m_memory_config));
19671967   save_pointer(NAME(m_mem_fe00.target()), m_mem_fe00.bytes());
1968   machine().save().register_postload(save_prepost_delegate(FUNC(lynx_postload), this));
1968   machine().save().register_postload(save_prepost_delegate(FUNC(lynx_state::lynx_postload), this));
19691969
19701970   membank("bank3")->configure_entry(0, machine().root_device().memregion("maincpu")->base() + 0x0000);
19711971   membank("bank3")->configure_entry(1, m_mem_fe00);
trunk/src/mess/machine/mac.c
r20637r20638
19301930   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, state);
19311931}
19321932
1933static void mac_state_load(mac_state *mac)
1933void mac_state::mac_state_load()
19341934{
19351935   int overlay;
1936   overlay = mac->m_overlay;
1937   if (mac->m_model < MODEL_MAC_POWERMAC_6100) // no overlay for PowerPC
1936   overlay = m_overlay;
1937   if (m_model < MODEL_MAC_POWERMAC_6100) // no overlay for PowerPC
19381938   {
1939      mac->m_overlay = -1;
1940      mac->set_memory_overlay(overlay);
1939      m_overlay = -1;
1940      set_memory_overlay(overlay);
19411941   }
19421942}
19431943
r20637r20638
20772077   mac->m_inquiry_timeout = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(mac_state::inquiry_timeout_func),mac));
20782078
20792079   /* save state stuff */
2080   machine.save().register_postload(save_prepost_delegate(FUNC(mac_state_load), mac));
2080   machine.save().register_postload(save_prepost_delegate(FUNC(mac_state::mac_state_load), mac));
20812081}
20822082
20832083#define MAC_DRIVER_INIT(label, model)   \
trunk/src/mess/machine/nes.c
r20637r20638
227227   m_irq_timer->adjust(attotime::never);
228228}
229229
230static void nes_banks_restore(nes_state *state)
230void nes_state::nes_banks_restore()
231231{
232   state->membank("bank1")->set_entry(state->m_prg_bank[0]);
233   state->membank("bank2")->set_entry(state->m_prg_bank[1]);
234   state->membank("bank3")->set_entry(state->m_prg_bank[2]);
235   state->membank("bank4")->set_entry(state->m_prg_bank[3]);
236   state->membank("bank5")->set_entry(state->m_prg_bank[4]);
232   membank("bank1")->set_entry(m_prg_bank[0]);
233   membank("bank2")->set_entry(m_prg_bank[1]);
234   membank("bank3")->set_entry(m_prg_bank[2]);
235   membank("bank4")->set_entry(m_prg_bank[3]);
236   membank("bank5")->set_entry(m_prg_bank[4]);
237237}
238238
239239static void nes_state_register( running_machine &machine )
r20637r20638
286286   if (state->m_battery)
287287      state->save_pointer(NAME(state->m_battery_ram), state->m_battery_size);
288288
289   machine.save().register_postload(save_prepost_delegate(FUNC(nes_banks_restore), state));
289   machine.save().register_postload(save_prepost_delegate(FUNC(nes_state::nes_banks_restore), state));
290290}
291291
292292
trunk/src/mess/machine/hp48.c
r20637r20638
8080    FUNCTIONS
8181***************************************************************************/
8282
83static void hp48_apply_modules(hp48_state *state);
84
85
8683static void hp48_pulse_irq( running_machine &machine, int irq_line)
8784{
8885   machine.device("maincpu")->execute().set_input_line(irq_line, ASSERT_LINE );
r20637r20638
334331
335332/* ------------- annonciators ------------ */
336333
337static void hp48_update_annunciators(hp48_state *state)
334void hp48_state::hp48_update_annunciators()
338335{
339336   /* bit 0: left shift
340337      bit 1: right shift
r20637r20638
344341      bit 5: transmit
345342      bit 7: master enable
346343   */
344   hp48_state *state = machine().driver_data<hp48_state>();
347345   int markers = HP48_IO_8(0xb);
348346   output_set_value( "lshift0",   (markers & 0x81) == 0x81 );
349347   output_set_value( "rshift0",   (markers & 0x82) == 0x82 );
r20637r20638
379377   case 0x0b:
380378   case 0x0c:
381379      m_io[offset] = data;
382      hp48_update_annunciators(this);
380      hp48_update_annunciators();
383381      break;
384382
385383   /* cntrl ROM */
r20637r20638
389387      m_io[offset] = data;
390388      if ( old_cntrl != (data & 8) )
391389      {
392         hp48_apply_modules(this);
390         hp48_apply_modules();
393391      }
394392      break;
395393   }
r20637r20638
597595   {
598596      LOG(( "%05x %f hp48_bank_r: off=%03x\n", space.device().safe_pcbase(), space.machine().time().as_double(), offset ));
599597      m_bank_switch = offset;
600      hp48_apply_modules(this);
598      hp48_apply_modules();
601599   }
602600   return 0;
603601}
r20637r20638
695693
696694
697695/* remap all modules according to hp48_modules */
698static void hp48_apply_modules(hp48_state *state)
696void hp48_state::hp48_apply_modules()
699697{
700698   int i;
701699   int nce2_enable = 1;
702   address_space& space = state->machine().device("maincpu")->memory().space(AS_PROGRAM);
700   address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
703701
704   state->m_io_addr = 0x100000;
702   m_io_addr = 0x100000;
705703
704   hp48_state *state = machine().driver_data<hp48_state>();
706705   if ( HP48_G_SERIES )
707706   {
708707      /* port 2 bank switch */
709      if ( state->m_port_size[1] > 0 )
708      if ( m_port_size[1] > 0 )
710709      {
711         int off = (state->m_bank_switch << 16) % state->m_port_size[1];
712         state->m_modules[4].data = state->m_port_data[1] + off;
710         int off = (m_bank_switch << 16) % m_port_size[1];
711         m_modules[4].data = m_port_data[1] + off;
713712      }
714713
715714      /* ROM A19 (hi 256 KB) / NCE2 (port 2) control switch */
716      if ( state->m_io[0x29] & 8 )
715      if ( m_io[0x29] & 8 )
717716      {
718717         /* A19 */
719         state->m_modules[5].off_mask = 0xfffff;
718         m_modules[5].off_mask = 0xfffff;
720719         nce2_enable = 0;
721720      }
722721      else
723722      {
724723         /* NCE2 */
725         state->m_modules[5].off_mask = 0x7ffff;
726         nce2_enable = state->m_bank_switch >> 6;
724         m_modules[5].off_mask = 0x7ffff;
725         nce2_enable = m_bank_switch >> 6;
727726      }
728727   }
729728
730729   /* S series ROM mapping compatibility */
731   if ( HP48_S_SERIES || !(state->m_io[0x29] & 8) )
730   if ( HP48_S_SERIES || !(m_io[0x29] & 8) )
732731   {
733      state->m_modules[5].off_mask = 0x7ffff;
732      m_modules[5].off_mask = 0x7ffff;
734733   }
735734   else
736735   {
737      state->m_modules[5].off_mask = 0xfffff;
736      m_modules[5].off_mask = 0xfffff;
738737   }
739738
740739   /* from lowest to highest priority */
741740   for ( i = 5; i >= 0; i-- )
742741   {
743      UINT32 select_mask = state->m_modules[i].mask;
742      UINT32 select_mask = m_modules[i].mask;
744743      UINT32 nselect_mask = ~select_mask & 0xfffff;
745      UINT32 base = state->m_modules[i].base;
746      UINT32 off_mask = state->m_modules[i].off_mask;
744      UINT32 base = m_modules[i].base;
745      UINT32 off_mask = m_modules[i].off_mask;
747746      UINT32 mirror = nselect_mask & ~off_mask;
748747      UINT32 end = base + (off_mask & nselect_mask);
749748      char bank[10];
750749      sprintf(bank,"bank%d",i);
751750
752      if ( state->m_modules[i].state != HP48_MODULE_CONFIGURED ) continue;
751      if ( m_modules[i].state != HP48_MODULE_CONFIGURED ) continue;
753752
754753      if ( (i == 4) && !nce2_enable ) continue;
755754
r20637r20638
761760         continue;
762761      }
763762
764      if (state->m_modules[i].data)
763      if (m_modules[i].data)
765764         space.install_read_bank( base, end, 0, mirror, bank );
766765      else
767766      {
768         if (!state->m_modules[i].read.isnull())
769            space.install_read_handler( base, end, 0, mirror, state->m_modules[i].read);
767         if (!m_modules[i].read.isnull())
768            space.install_read_handler( base, end, 0, mirror, m_modules[i].read);
770769      }
771770
772      if (state->m_modules[i].isnop)
771      if (m_modules[i].isnop)
773772         space.nop_write(base, end, 0, mirror);
774773      else
775774      {
776         if (state->m_modules[i].data)
775         if (m_modules[i].data)
777776            space.install_write_bank( base, end, 0, mirror, bank );
778777         else
779778         {
780            if (!state->m_modules[i].write.isnull())
781               space.install_write_handler( base, end, 0, mirror, state->m_modules[i].write);
779            if (!m_modules[i].write.isnull())
780               space.install_write_handler( base, end, 0, mirror, m_modules[i].write);
782781         }
783782      }
784783
785784      LOG(( "hp48_apply_modules: module %s configured at %05x-%05x, mirror %05x\n",
786785            hp48_module_names[i], base, end, mirror ));
787786
788      if ( state->m_modules[i].data )
787      if ( m_modules[i].data )
789788      {
790         state->membank( bank )->set_base( state->m_modules[i].data );
789         membank( bank )->set_base( m_modules[i].data );
791790      }
792791
793792      if ( i == 0 )
794793      {
795         state->m_io_addr = base;
794         m_io_addr = base;
796795      }
797796   }
798797}
r20637r20638
817816   state->m_modules[5].base = 0;
818817   state->m_modules[5].mask = 0;
819818
820   hp48_apply_modules(state);
819   state->hp48_apply_modules();
821820}
822821
823822
r20637r20638
855854         state->m_modules[i].state = HP48_MODULE_CONFIGURED;
856855         LOG(( "hp48_mem_config: module %s configured base=%05x, mask=%05x\n",
857856               hp48_module_names[i], state->m_modules[i].base, state->m_modules[i].mask ));
858         hp48_apply_modules(state);
857         state->hp48_apply_modules();
859858         break;
860859      }
861860   }
r20637r20638
878877      {
879878         state->m_modules[i].state = i> 0 ? HP48_MODULE_UNCONFIGURED : HP48_MODULE_MASK_KNOWN;
880879         LOG(( "hp48_mem_unconfig: module %s\n", hp48_module_names[i] ));
881         hp48_apply_modules(state);
880         state->hp48_apply_modules();
882881         break;
883882      }
884883   }
r20637r20638
985984      state->m_modules[conf->module].isnop    = 1;
986985   }
987986   state->m_modules[conf->module].data     = state->m_port_data[conf->port];
988   hp48_apply_modules(state);
987   state->hp48_apply_modules();
989988}
990989
991990/* helper for start and unload */
r20637r20638
10571056   }
10581057   free( state->m_port_data[conf->port] );
10591058   hp48_unfill_port();
1060   hp48_apply_modules(state);
1059   state->hp48_apply_modules();
10611060}
10621061
10631062void hp48_port_image_device::device_start()
r20637r20638
10991098{
11001099   LOG(( "hp48: machine reset called\n" ));
11011100   hp48_reset_modules( machine() );
1102   hp48_update_annunciators(this);
1101   hp48_update_annunciators();
11031102}
11041103
11051104void hp48_state::hp48_machine_start( hp48_models model )
r20637r20638
11861185   save_item(NAME(m_io) );
11871186   //state_save_register_global_pointer(machine,  machine.generic.nvram.u8, machine.generic.nvram_size );
11881187
1189   machine().save().register_postload( save_prepost_delegate(FUNC(hp48_update_annunciators), state ));
1190   machine().save().register_postload( save_prepost_delegate(FUNC(hp48_apply_modules), state ));
1188   machine().save().register_postload( save_prepost_delegate(FUNC(hp48_state::hp48_update_annunciators), state ));
1189   machine().save().register_postload( save_prepost_delegate(FUNC(hp48_state::hp48_apply_modules), state ));
11911190
11921191#ifdef CHARDEV
11931192   /* direct I/O */
trunk/src/mess/includes/mac.h
r20637r20638
509509   DECLARE_WRITE8_MEMBER(mac_via2_out_a);
510510   DECLARE_WRITE8_MEMBER(mac_via2_out_b);
511511   DECLARE_WRITE_LINE_MEMBER(mac_kbd_clk_in);
512   void mac_state_load();
512513};
513514
514515#endif /* MAC_H_ */
trunk/src/mess/includes/nes.h
r20637r20638
124124   DECLARE_READ8_MEMBER(psg_4015_r);
125125   DECLARE_WRITE8_MEMBER(psg_4015_w);
126126   DECLARE_WRITE8_MEMBER(psg_4017_w);
127   void nes_banks_restore();
127128
128129   ioport_port       *m_io_ctrlsel;
129130   ioport_port       *m_io_fckey[9];
trunk/src/mess/includes/lynx.h
r20637r20638
144144   TIMER_CALLBACK_MEMBER(lynx_timer_shot);
145145   TIMER_CALLBACK_MEMBER(lynx_uart_loopback_timer);
146146   TIMER_CALLBACK_MEMBER(lynx_uart_timer);
147   void lynx_postload();
147148};
148149
149150
trunk/src/mess/includes/b2m.h
r20637r20638
6666   void b2m_fdc_drq(bool state);
6767   DECLARE_FLOPPY_FORMATS( b2m_floppy_formats );
6868   IRQ_CALLBACK_MEMBER(b2m_irq_callback);
69   void b2m_postload();
6970};
7071
7172/*----------- defined in machine/b2m.c -----------*/
trunk/src/mess/includes/apple2.h
r20637r20638
270270   DECLARE_WRITE8_MEMBER(a2bus_irq_w);
271271   DECLARE_WRITE8_MEMBER(a2bus_nmi_w);
272272   DECLARE_WRITE8_MEMBER(a2bus_inh_w);
273   void apple2_update_memory_postload();
273274};
274275
275276
trunk/src/mess/includes/hp48.h
r20637r20638
8484   TIMER_CALLBACK_MEMBER(hp48_kbd_cb);
8585   TIMER_CALLBACK_MEMBER(hp48_timer1_cb);
8686   TIMER_CALLBACK_MEMBER(hp48_timer2_cb);
87   void hp48_update_annunciators();
88   void hp48_apply_modules();
8789};
8890
8991
trunk/src/mess/drivers/ng_aes.c
r20637r20638
10851085   state->save_item(NAME(state->m_led2_value));
10861086   state->save_item(NAME(state->m_recurse));
10871087
1088   machine.save().register_postload(save_prepost_delegate(FUNC(neogeo_postload), &machine));
1088   machine.save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), state));
10891089}
10901090
10911091MACHINE_START_MEMBER(ng_aes_state,neogeo)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team