Previous 199869 Revisions Next

r18062 Friday 21st September, 2012 at 14:33:19 UTC by Miodrag Milanović
dgn_beta removal of _space_func and moving handlers to members (nw)
[src/mess/includes]dgn_beta.h
[src/mess/machine]dgn_beta.c

trunk/src/mess/machine/dgn_beta.c
r18061r18062
7171#include "debug/debugcon.h"
7272#include "machine/ram.h"
7373
74
75// Ram banking handlers.
76static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b0_w );
77static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b1_w );
78static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b2_w );
79static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b3_w );
80static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b4_w );
81static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b5_w );
82static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b6_w );
83static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b7_w );
84static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b8_w );
85static DECLARE_WRITE8_HANDLER( dgnbeta_ram_b9_w );
86static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bA_w );
87static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bB_w );
88static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bC_w );
89static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bD_w );
90static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bE_w );
91static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bF_w );
92static DECLARE_WRITE8_HANDLER( dgnbeta_ram_bG_w );
93
94
9574#define VERBOSE 0
9675
9776
r18061r18062
209188// Info for bank switcher
210189struct bank_info_entry
211190{
212   write8_space_func func;   // Pointer to write handler
213   const char *name;
191   write8_delegate func;   // Pointer to write handler
214192   offs_t start;      // Offset of start of block
215193   offs_t end;      // offset of end of block
216194};
217195
218196static const struct bank_info_entry bank_info[] =
219197{
220   { FUNC(dgnbeta_ram_b0_w), 0x0000, 0x0fff },
221   { FUNC(dgnbeta_ram_b1_w), 0x1000, 0x1fff },
222   { FUNC(dgnbeta_ram_b2_w), 0x2000, 0x2fff },
223   { FUNC(dgnbeta_ram_b3_w), 0x3000, 0x3fff },
224   { FUNC(dgnbeta_ram_b4_w), 0x4000, 0x4fff },
225   { FUNC(dgnbeta_ram_b5_w), 0x5000, 0x5fff },
226   { FUNC(dgnbeta_ram_b6_w), 0x6000, 0x6fff },
227   { FUNC(dgnbeta_ram_b7_w), 0x7000, 0x7fff },
228   { FUNC(dgnbeta_ram_b8_w), 0x8000, 0x8fff },
229   { FUNC(dgnbeta_ram_b9_w), 0x9000, 0x9fff },
230   { FUNC(dgnbeta_ram_bA_w), 0xA000, 0xAfff },
231   { FUNC(dgnbeta_ram_bB_w), 0xB000, 0xBfff },
232   { FUNC(dgnbeta_ram_bC_w), 0xC000, 0xCfff },
233   { FUNC(dgnbeta_ram_bD_w), 0xD000, 0xDfff },
234   { FUNC(dgnbeta_ram_bE_w), 0xE000, 0xEfff },
235   { FUNC(dgnbeta_ram_bF_w), 0xF000, 0xFBff },
236   { FUNC(dgnbeta_ram_bG_w), 0xFF00, 0xFfff }
198   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b0_w),(dgn_beta_state*)0), 0x0000, 0x0fff },
199   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b1_w),(dgn_beta_state*)0), 0x1000, 0x1fff },
200   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b2_w),(dgn_beta_state*)0), 0x2000, 0x2fff },
201   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b3_w),(dgn_beta_state*)0), 0x3000, 0x3fff },
202   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b4_w),(dgn_beta_state*)0), 0x4000, 0x4fff },
203   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b5_w),(dgn_beta_state*)0), 0x5000, 0x5fff },
204   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b6_w),(dgn_beta_state*)0), 0x6000, 0x6fff },
205   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b7_w),(dgn_beta_state*)0), 0x7000, 0x7fff },
206   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b8_w),(dgn_beta_state*)0), 0x8000, 0x8fff },
207   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b9_w),(dgn_beta_state*)0), 0x9000, 0x9fff },
208   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bA_w),(dgn_beta_state*)0), 0xA000, 0xAfff },
209   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bB_w),(dgn_beta_state*)0), 0xB000, 0xBfff },
210   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bC_w),(dgn_beta_state*)0), 0xC000, 0xCfff },
211   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bD_w),(dgn_beta_state*)0), 0xD000, 0xDfff },
212   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bE_w),(dgn_beta_state*)0), 0xE000, 0xEfff },
213   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bF_w),(dgn_beta_state*)0), 0xF000, 0xFBff },
214   { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bG_w),(dgn_beta_state*)0), 0xFF00, 0xFfff }
237215};
238216
239217#define is_last_page(page)  (((page==LastPage) || (page==LastPage+1)) ? 1 : 0)
r18061r18062
295273            readbank = &machine.device<ram_device>(RAM_TAG)->pointer()[(MapPage*RamPageSize)-256];
296274            logerror("Error RAM in Last page !\n");
297275         }
298         space_0.install_legacy_write_handler(bank_start, bank_end,bank_info[Page].func,bank_info[Page].name);
299         space_1.install_legacy_write_handler(bank_start, bank_end,bank_info[Page].func,bank_info[Page].name);
276         write8_delegate func = bank_info[Page].func;
277         if (!func.isnull()) func.late_bind(*state);
278         space_0.install_write_handler(bank_start, bank_end,bank_info[Page].func);
279         space_1.install_write_handler(bank_start, bank_end,bank_info[Page].func);
300280      }
301281      else               // Block is rom, or undefined
302282      {
r18061r18062
397377   state->m_PageRegs[state->m_TaskReg][bank].memory[offset]=data;
398378}
399379
400static WRITE8_HANDLER( dgnbeta_ram_b0_w )
380WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b0_w )
401381{
402   dgn_beta_bank_memory(space.machine(),offset,data,0);
382   dgn_beta_bank_memory(machine(),offset,data,0);
403383}
404384
405static WRITE8_HANDLER( dgnbeta_ram_b1_w )
385WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b1_w )
406386{
407   dgn_beta_bank_memory(space.machine(),offset,data,1);
387   dgn_beta_bank_memory(machine(),offset,data,1);
408388}
409389
410static WRITE8_HANDLER( dgnbeta_ram_b2_w )
390WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b2_w )
411391{
412   dgn_beta_bank_memory(space.machine(),offset,data,2);
392   dgn_beta_bank_memory(machine(),offset,data,2);
413393}
414394
415static WRITE8_HANDLER( dgnbeta_ram_b3_w )
395WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b3_w )
416396{
417   dgn_beta_bank_memory(space.machine(),offset,data,3);
397   dgn_beta_bank_memory(machine(),offset,data,3);
418398}
419399
420static WRITE8_HANDLER( dgnbeta_ram_b4_w )
400WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b4_w )
421401{
422   dgn_beta_bank_memory(space.machine(),offset,data,4);
402   dgn_beta_bank_memory(machine(),offset,data,4);
423403}
424404
425static WRITE8_HANDLER( dgnbeta_ram_b5_w )
405WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b5_w )
426406{
427   dgn_beta_bank_memory(space.machine(),offset,data,5);
407   dgn_beta_bank_memory(machine(),offset,data,5);
428408}
429409
430static WRITE8_HANDLER( dgnbeta_ram_b6_w )
410WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b6_w )
431411{
432   dgn_beta_bank_memory(space.machine(),offset,data,6);
412   dgn_beta_bank_memory(machine(),offset,data,6);
433413}
434414
435static WRITE8_HANDLER( dgnbeta_ram_b7_w )
415WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b7_w )
436416{
437   dgn_beta_bank_memory(space.machine(),offset,data,7);
417   dgn_beta_bank_memory(machine(),offset,data,7);
438418}
439419
440static WRITE8_HANDLER( dgnbeta_ram_b8_w )
420WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b8_w )
441421{
442   dgn_beta_bank_memory(space.machine(),offset,data,8);
422   dgn_beta_bank_memory(machine(),offset,data,8);
443423}
444424
445static WRITE8_HANDLER( dgnbeta_ram_b9_w )
425WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_b9_w )
446426{
447   dgn_beta_bank_memory(space.machine(),offset,data,9);
427   dgn_beta_bank_memory(machine(),offset,data,9);
448428}
449429
450static WRITE8_HANDLER( dgnbeta_ram_bA_w )
430WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bA_w )
451431{
452   dgn_beta_bank_memory(space.machine(),offset,data,10);
432   dgn_beta_bank_memory(machine(),offset,data,10);
453433}
454434
455static WRITE8_HANDLER( dgnbeta_ram_bB_w )
435WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bB_w )
456436{
457   dgn_beta_bank_memory(space.machine(),offset,data,11);
437   dgn_beta_bank_memory(machine(),offset,data,11);
458438}
459439
460static WRITE8_HANDLER( dgnbeta_ram_bC_w )
440WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bC_w )
461441{
462   dgn_beta_bank_memory(space.machine(),offset,data,12);
442   dgn_beta_bank_memory(machine(),offset,data,12);
463443}
464444
465static WRITE8_HANDLER( dgnbeta_ram_bD_w )
445WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bD_w )
466446{
467   dgn_beta_bank_memory(space.machine(),offset,data,13);
447   dgn_beta_bank_memory(machine(),offset,data,13);
468448}
469449
470static WRITE8_HANDLER( dgnbeta_ram_bE_w )
450WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bE_w )
471451{
472   dgn_beta_bank_memory(space.machine(),offset,data,14);
452   dgn_beta_bank_memory(machine(),offset,data,14);
473453}
474454
475static WRITE8_HANDLER( dgnbeta_ram_bF_w )
455WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bF_w )
476456{
477   dgn_beta_bank_memory(space.machine(),offset,data,15);
457   dgn_beta_bank_memory(machine(),offset,data,15);
478458}
479459
480static WRITE8_HANDLER( dgnbeta_ram_bG_w )
460WRITE8_MEMBER(dgn_beta_state::dgnbeta_ram_bG_w )
481461{
482   dgn_beta_bank_memory(space.machine(),offset,data,16);
462   dgn_beta_bank_memory(machine(),offset,data,16);
483463}
484464
485465/*
trunk/src/mess/includes/dgn_beta.h
r18061r18062
144144   int m_DrawInterlace;
145145   virtual void machine_start();
146146   virtual void palette_init();
147   WRITE8_MEMBER(dgnbeta_ram_b0_w);
148   WRITE8_MEMBER(dgnbeta_ram_b1_w);
149   WRITE8_MEMBER(dgnbeta_ram_b2_w);
150   WRITE8_MEMBER(dgnbeta_ram_b3_w);
151   WRITE8_MEMBER(dgnbeta_ram_b4_w);
152   WRITE8_MEMBER(dgnbeta_ram_b5_w);
153   WRITE8_MEMBER(dgnbeta_ram_b6_w);
154   WRITE8_MEMBER(dgnbeta_ram_b7_w);
155   WRITE8_MEMBER(dgnbeta_ram_b8_w);
156   WRITE8_MEMBER(dgnbeta_ram_b9_w);
157   WRITE8_MEMBER(dgnbeta_ram_bA_w);
158   WRITE8_MEMBER(dgnbeta_ram_bB_w);
159   WRITE8_MEMBER(dgnbeta_ram_bC_w);
160   WRITE8_MEMBER(dgnbeta_ram_bD_w);
161   WRITE8_MEMBER(dgnbeta_ram_bE_w);
162   WRITE8_MEMBER(dgnbeta_ram_bF_w);
163   WRITE8_MEMBER(dgnbeta_ram_bG_w);
147164};
148165
149166

Previous 199869 Revisions Next


© 1997-2024 The MAME Team