Previous 199869 Revisions Next

r34977 Wednesday 11th February, 2015 at 18:59:56 UTC by Couriersud
Merge branch 'master' of https://github.com/mamedev/mame.git
[src/emu/bus/coco]coco_multi.c
[src/emu/bus/isa]gblaster.c sblaster.c
[src/emu/cpu/amis2000]amis2000.c amis2000.h
[src/emu/cpu/i86]i186.c
[src/emu/cpu/ucom4]ucom4.c ucom4.h ucom4op.inc
[src/emu/machine]mc2661.c
[src/emu/sound]saa1099.c saa1099.h
[src/mame]mame.lst
[src/mame/drivers]bingor.c circus.c cyclemb.c dlair2.c equites.c gladiatr.c gsword.c hornet.c igs011.c jpmsys5.c liberate.c manohman.c mastboy.c mcr.c mpu4vid.c namcops2.c nwk-tr.c quizpani.c statriv2.c vamphalf.c wrally.c xorworld.c
[src/mame/includes]gladiatr.h gsword.h liberate.h quizpani.h wrally.h xorworld.h
[src/mame/layout]superbug.lay
[src/mame/machine]tait8741.c wrally.c
[src/mame/video]gladiatr.c gsword.c liberate.c quizpani.c wrally.c xorworld.c
[src/mess]mess.lst mess.mak
[src/mess/drivers]alesis.c amaztron.c cnsector.c kaypro.c mbee.c merlin.c pcd.c prestige.c samcoupe.c simon.c splitsec.c stopthie.c wildfire.c
[src/mess/includes]alesis.h kaypro.h mbee.h
[src/mess/layout]bankshot.lay
[src/mess/machine]kaypro.c mbee.c
[src/mess/video]mbee.c

trunk/src/emu/bus/coco/coco_multi.c
r243488r243489
103103
104104static MACHINE_CONFIG_FRAGMENT(coco_multi)
105105   MCFG_COCO_CARTRIDGE_ADD(SLOT1_TAG, coco_cart_slot1_3, NULL)
106   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_cart_w))
107   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_nmi_w))
108   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_halt_w))
106   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_cart_w))
107   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_nmi_w))
108   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_halt_w))
109109   MCFG_COCO_CARTRIDGE_ADD(SLOT2_TAG, coco_cart_slot1_3, NULL)
110   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_cart_w))
111   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_nmi_w))
112   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_halt_w))
110   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_cart_w))
111   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_nmi_w))
112   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_halt_w))
113113   MCFG_COCO_CARTRIDGE_ADD(SLOT3_TAG, coco_cart_slot1_3, NULL)
114   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_cart_w))
115   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_nmi_w))
116   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_halt_w))
114   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_cart_w))
115   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_nmi_w))
116   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_halt_w))
117117   MCFG_COCO_CARTRIDGE_ADD(SLOT4_TAG, coco_cart_slot4, "fdcv11")
118   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_cart_w))
119   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_nmi_w))
120   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF_OWNER, coco_multipak_device, multi_halt_w))
118   MCFG_COCO_CARTRIDGE_CART_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_cart_w))
119   MCFG_COCO_CARTRIDGE_NMI_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_nmi_w))
120   MCFG_COCO_CARTRIDGE_HALT_CB(DEVWRITELINE(DEVICE_SELF, coco_multipak_device, multi_halt_w))
121121MACHINE_CONFIG_END
122122
123123//**************************************************************************
trunk/src/emu/bus/isa/gblaster.c
r243488r243489
3333{
3434   switch(offset)
3535   {
36      case 0 : m_saa1099_1->saa1099_control_w( space, offset, data ); break;
37      case 1 : m_saa1099_1->saa1099_data_w( space, offset, data ); break;
36      case 0 : m_saa1099_1->control_w( space, offset, data ); break;
37      case 1 : m_saa1099_1->data_w( space, offset, data ); break;
3838   }
3939}
4040
r243488r243489
4242{
4343   switch(offset)
4444   {
45      case 0 : m_saa1099_2->saa1099_control_w( space, offset, data ); break;
46      case 1 : m_saa1099_2->saa1099_data_w( space, offset, data ); break;
45      case 0 : m_saa1099_2->control_w( space, offset, data ); break;
46      case 1 : m_saa1099_2->data_w( space, offset, data ); break;
4747   }
4848}
4949
trunk/src/emu/bus/isa/sblaster.c
r243488r243489
148148{
149149   switch(offset)
150150   {
151      case 0 : m_saa1099_1->saa1099_control_w( space, offset, data ); break;
152      case 1 : m_saa1099_1->saa1099_data_w( space, offset, data ); break;
151      case 0 : m_saa1099_1->control_w( space, offset, data ); break;
152      case 1 : m_saa1099_1->data_w( space, offset, data ); break;
153153   }
154154}
155155
r243488r243489
157157{
158158   switch(offset)
159159   {
160      case 0 : m_saa1099_2->saa1099_control_w( space, offset, data ); break;
161      case 1 : m_saa1099_2->saa1099_data_w( space, offset, data ); break;
160      case 0 : m_saa1099_2->control_w( space, offset, data ); break;
161      case 1 : m_saa1099_2->data_w( space, offset, data ); break;
162162   }
163163}
164164
trunk/src/emu/cpu/amis2000/amis2000.c
r243488r243489
207207void amis2000_device::device_reset()
208208{
209209   m_pc = 0;
210   m_op = 0;
210211   m_skip = false;
211   m_op = 0;
212212   
213213   // clear i/o
214214   m_d_polarity = 0;
r243488r243489
241241      {
242242         // always skip over PP prefix
243243         m_skip = ((m_op & 0xf0) == 0x60);
244         continue;
244         m_op = 0; // nop
245245      }
246246
247247      switch (m_op & 0xf0)
trunk/src/emu/cpu/amis2000/amis2000.h
r243488r243489
5151   virtual void device_reset();
5252
5353   // device_execute_interface overrides
54   virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const { return (clocks + 4 - 1) / 4; } // 4 cycles per machine cycle
55   virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const { return (cycles * 4); } // "
5456   virtual UINT32 execute_min_cycles() const { return 1; }
5557   virtual UINT32 execute_max_cycles() const { return 2; }
5658   virtual UINT32 execute_input_lines() const { return 1; }
trunk/src/emu/cpu/i86/i186.c
r243488r243489
10351035            count = count ? count : 0x10000;
10361036            if(!(t->control & 4))
10371037               t->int_timer->adjust((attotime::from_hz(clock()/8) * count), which);
1038            t->count = 0;
10391038            if (LOG_TIMER) logerror("  Repriming interrupt\n");
10401039         }
10411040         else
1041         {
10421042            t->int_timer->adjust(attotime::never, which);
1043            t->control &= ~0x8000;
1044         }
1045         t->count = 0;
10431046         break;
10441047      }
10451048
r243488r243489
12451248   // Do the transfer, 80188 is incapable of word transfers
12461249   if ((dma->control & BYTE_WORD) && (m_program->data_width() == 16))
12471250   {
1248      dma_word = src_space->read_word(dma->source);
1249      dest_space->write_word(dma->dest, dma_word);
1251      dma_word = src_space->read_word_unaligned(dma->source);
1252      dest_space->write_word_unaligned(dma->dest, dma_word);
12501253      incdec_size = 2;
12511254   }
12521255   else
r243488r243489
16751678         if (LOG_PORTS) logerror("%05X:80186 DMA%d control = %04X\n", pc(), (offset - 0x65) / 8, data);
16761679         which = (offset - 0x65) / 8;
16771680         update_dma_control(which, data);
1681         if((m_dma[which].control & (SYNC_MASK | ST_STOP | TIMER_DRQ)) == ST_STOP)
1682         {
1683            // TODO: don't do this
1684            while(m_dma[which].control & ST_STOP)
1685               drq_callback(which);
1686         }
16781687         break;
16791688
16801689      case 0x7f:
trunk/src/emu/cpu/ucom4/ucom4.c
r243488r243489
203203//  execute
204204//-------------------------------------------------
205205
206void ucom4_cpu_device::increment_pc()
206inline void ucom4_cpu_device::increment_pc()
207207{
208208   // upper bits (field register) don't auto-increment
209209   m_pc = (m_pc & ~0xff) | ((m_pc + 1) & 0xff);
210210}
211211
212void ucom4_cpu_device::fetch_arg()
212inline void ucom4_cpu_device::fetch_arg()
213213{
214214   // 2-byte opcodes: STM/LDI/CLI/CI, JMP/CAL, OCD
215215   if ((m_op & 0xfc) == 0x14 || (m_op & 0xf0) == 0xa0 || m_op == 0x1e)
r243488r243489
238238      if (m_skip)
239239      {
240240         m_skip = false;
241         continue;
241         m_op = 0; // nop
242242      }
243243     
244244      switch (m_op & 0xf0)
trunk/src/emu/cpu/ucom4/ucom4.h
r243488r243489
105105   virtual void device_reset();
106106
107107   // device_execute_interface overrides
108   virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const { return (clocks + 4 - 1) / 4; } // 4 cycles per machine cycle
109   virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const { return (cycles * 4); } // "
108110   virtual UINT32 execute_min_cycles() const { return 1; }
109111   virtual UINT32 execute_max_cycles() const { return 2; }
110112   virtual UINT32 execute_input_lines() const { return 1; }
trunk/src/emu/cpu/ucom4/ucom4op.inc
r243488r243489
180180void ucom4_cpu_device::op_adc()
181181{
182182   // ADC: Add RAM and carry to ACC, store Carry F/F
183   op_illegal();
183   m_acc += ram_r() + m_carry_f;
184   m_carry_f = m_acc >> 4 & 1;
185   m_acc &= 0xf;
184186}
185187
186188void ucom4_cpu_device::op_ads()
187189{
188190   // ADS: Add RAM and carry to ACC, store Carry F/F, skip next on carry
189   op_illegal();
191   op_adc();
192   m_skip = (m_carry_f != 0);
190193}
191194
192195void ucom4_cpu_device::op_daa()
r243488r243489
516519   if (!check_op_43()) return;
517520
518521   // TAW: Transfer ACC to W
519   op_illegal();
522   m_icount--;
523   ucom43_reg_w(UCOM43_W, m_acc);
520524}
521525
522526void ucom4_cpu_device::op_taz()
r243488r243489
524528   if (!check_op_43()) return;
525529   
526530   // TAZ: Transfer ACC to Z
527   op_illegal();
531   m_icount--;
532   ucom43_reg_w(UCOM43_Z, m_acc);
528533}
529534
530535void ucom4_cpu_device::op_thx()
r243488r243489
532537   if (!check_op_43()) return;
533538   
534539   // THX: Transfer DPh to X
535   op_illegal();
540   m_icount--;
541   ucom43_reg_w(UCOM43_X, m_dph);
536542}
537543
538544void ucom4_cpu_device::op_tly()
r243488r243489
540546   if (!check_op_43()) return;
541547   
542548   // TLY: Transfer DPl to Y
543   op_illegal();
549   m_icount--;
550   ucom43_reg_w(UCOM43_Y, m_dpl);
544551}
545552
546553
r243488r243489
551558   if (!check_op_43()) return;
552559   
553560   // XAW: Exchange ACC with W
554   op_illegal();
561   m_icount--;
562   UINT8 old_acc = m_acc;
563   m_acc = ucom43_reg_r(UCOM43_W);
564   ucom43_reg_w(UCOM43_W, old_acc);
555565}
556566
557567void ucom4_cpu_device::op_xaz()
r243488r243489
559569   if (!check_op_43()) return;
560570   
561571   // XAZ: Exchange ACC with Z
562   op_illegal();
572   m_icount--;
573   UINT8 old_acc = m_acc;
574   m_acc = ucom43_reg_r(UCOM43_Z);
575   ucom43_reg_w(UCOM43_Z, old_acc);
563576}
564577
565578void ucom4_cpu_device::op_xhr()
r243488r243489
567580   if (!check_op_43()) return;
568581   
569582   // XHR: Exchange DPh with R
570   op_illegal();
583   m_icount--;
584   UINT8 old_dph = m_dph;
585   m_dph = ucom43_reg_r(UCOM43_R);
586   ucom43_reg_w(UCOM43_R, old_dph);
571587}
572588
573589void ucom4_cpu_device::op_xhx()
r243488r243489
575591   if (!check_op_43()) return;
576592   
577593   // XHX: Exchange DPh with X
578   op_illegal();
594   m_icount--;
595   UINT8 old_dph = m_dph;
596   m_dph = ucom43_reg_r(UCOM43_X);
597   ucom43_reg_w(UCOM43_X, old_dph);
579598}
580599
581600void ucom4_cpu_device::op_xls()
r243488r243489
583602   if (!check_op_43()) return;
584603   
585604   // XLS: Exchange DPl with S
586   op_illegal();
605   m_icount--;
606   UINT8 old_dpl = m_dpl;
607   m_dpl = ucom43_reg_r(UCOM43_S);
608   ucom43_reg_w(UCOM43_S, old_dpl);
587609}
588610
589611void ucom4_cpu_device::op_xly()
r243488r243489
591613   if (!check_op_43()) return;
592614   
593615   // XLY: Exchange DPl with Y
594   op_illegal();
616   m_icount--;
617   UINT8 old_dpl = m_dpl;
618   m_dpl = ucom43_reg_r(UCOM43_Y);
619   ucom43_reg_w(UCOM43_Y, old_dpl);
595620}
596621
597622void ucom4_cpu_device::op_xc()
r243488r243489
599624   if (!check_op_43()) return;
600625   
601626   // XC: Exchange Carry F/F with Carry Save F/F
602   op_illegal();
627   UINT8 c = m_carry_f;
628   m_carry_f = m_carry_s_f;
629   m_carry_s_f = c;
603630}
604631
605632
r243488r243489
610637   if (!check_op_43()) return;
611638   
612639   // SFB B: Set a single bit of FLAG
613   op_illegal();
640   m_icount--;
641   ucom43_reg_w(UCOM43_F, ucom43_reg_r(UCOM43_F) | m_bitmask);
614642}
615643
616644void ucom4_cpu_device::op_rfb()
r243488r243489
618646   if (!check_op_43()) return;
619647   
620648   // RFB B: Reset a single bit of FLAG
621   op_illegal();
649   m_icount--;
650   ucom43_reg_w(UCOM43_F, ucom43_reg_r(UCOM43_F) & ~m_bitmask);
622651}
623652
624653void ucom4_cpu_device::op_fbt()
r243488r243489
626655   if (!check_op_43()) return;
627656   
628657   // FBT B: skip next on bit(FLAG)
629   op_illegal();
658   m_icount--;
659   m_skip = ((ucom43_reg_r(UCOM43_F) & m_bitmask) != 0);
630660}
631661
632662void ucom4_cpu_device::op_fbf()
r243488r243489
634664   if (!check_op_43()) return;
635665   
636666   // FBF B: skip next on not bit(FLAG)
637   op_illegal();
667   m_icount--;
668   m_skip = ((ucom43_reg_r(UCOM43_F) & m_bitmask) == 0);
638669}
639670
640671
r243488r243489
645676   if (!check_op_43()) return;
646677   
647678   // RAR: Rotate ACC Right through Carry F/F
648   op_illegal();
679   UINT8 c = m_acc & 1;
680   m_acc = m_acc >> 1 | m_carry_f << 3;
681   m_carry_f = c;
649682}
650683
651684
r243488r243489
656689   if (!check_op_43()) return;
657690   
658691   // INM: Increment RAM, skip next on carry
659   op_illegal();
692   UINT8 val = (ram_r() + 1) & 0xf;
693   ram_w(val);
694   m_skip = (val == 0);
660695}
661696
662697void ucom4_cpu_device::op_dem()
r243488r243489
664699   if (!check_op_43()) return;
665700   
666701   // DEM: Decrement RAM, skip next on carry
667   op_illegal();
702   UINT8 val = (ram_r() - 1) & 0xf;
703   ram_w(val);
704   m_skip = (val == 0xf);
668705}
669706
670707
trunk/src/emu/machine/mc2661.c
r243488r243489
278278         m_write_txrdy(CLEAR_LINE);
279279      }
280280      if(COMMAND_MODE == 0x02)  // loopback - the Wicat will set this after enabling the transmitter
281      {
281282         m_rhr = data;
283         m_sr |= STATUS_RXRDY; // pcd expects this
284         m_write_rxrdy(ASSERT_LINE);
285      }
282286      break;
283287
284288   case REGISTER_SYNC:
trunk/src/emu/sound/saa1099.c
r243488r243489
161161
162162   /* for each chip allocate one stream */
163163   m_stream = stream_alloc(0, 2, m_sample_rate);
164   
165   save_item(NAME(m_noise_params));
166   save_item(NAME(m_env_enable));
167   save_item(NAME(m_env_reverse_right));
168   save_item(NAME(m_env_mode));
169   save_item(NAME(m_env_bits));
170   save_item(NAME(m_env_clock));
171   save_item(NAME(m_env_step));
172   save_item(NAME(m_all_ch_enable));
173   save_item(NAME(m_sync_state));
174   save_item(NAME(m_selected_reg));
175   
176   for (int i = 0; i < 6; i++)
177   {
178      save_item(NAME(m_channels[i].frequency), i);
179      save_item(NAME(m_channels[i].freq_enable), i);
180      save_item(NAME(m_channels[i].noise_enable), i);
181      save_item(NAME(m_channels[i].octave), i);
182      save_item(NAME(m_channels[i].amplitude), i);
183      save_item(NAME(m_channels[i].envelope), i);
184      save_item(NAME(m_channels[i].counter), i);
185      save_item(NAME(m_channels[i].freq), i);
186      save_item(NAME(m_channels[i].level), i);
187   }
188   
189   for (int i = 0; i < 2; i++)
190   {
191      save_item(NAME(m_noise[i].counter), i);
192      save_item(NAME(m_noise[i].freq), i);
193      save_item(NAME(m_noise[i].level), i);
194   }
164195}
165196
166197
r243488r243489
217248
218249            /* eventually clock the envelope counters */
219250            if (ch == 1 && m_env_clock[0] == 0)
220               saa1099_envelope(0);
251               envelope_w(0);
221252            if (ch == 4 && m_env_clock[1] == 0)
222               saa1099_envelope(1);
253               envelope_w(1);
223254         }
224255
225256         /* if the noise is enabled */
r243488r243489
266297}
267298
268299
269void saa1099_device::saa1099_envelope(int ch)
300void saa1099_device::envelope_w(int ch)
270301{
271302   if (m_env_enable[ch])
272303   {
r243488r243489
309340}
310341
311342
312WRITE8_MEMBER( saa1099_device::saa1099_control_w )
343WRITE8_MEMBER( saa1099_device::control_w )
313344{
314345   if ((data & 0xff) > 0x1c)
315346   {
r243488r243489
322353   {
323354      /* clock the envelope channels */
324355      if (m_env_clock[0])
325         saa1099_envelope(0);
356         envelope_w(0);
326357      if (m_env_clock[1])
327         saa1099_envelope(1);
358         envelope_w(1);
328359   }
329360}
330361
331362
332WRITE8_MEMBER( saa1099_device::saa1099_data_w )
363WRITE8_MEMBER( saa1099_device::data_w )
333364{
334365   int reg = m_selected_reg;
335366   int ch;
trunk/src/emu/sound/saa1099.h
r243488r243489
8080   virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
8181
8282public:
83   DECLARE_WRITE8_MEMBER( saa1099_control_w );
84   DECLARE_WRITE8_MEMBER( saa1099_data_w );
83   DECLARE_WRITE8_MEMBER( control_w );
84   DECLARE_WRITE8_MEMBER( data_w );
8585
8686private:
87   void saa1099_envelope(int ch);
87   void envelope_w(int ch);
8888
8989private:
9090   sound_stream *m_stream;          /* our stream */
trunk/src/mame/drivers/bingor.c
r243488r243489
526526
527527static ADDRESS_MAP_START( bingor_io, AS_IO, 16, bingor_state )
528528//  AM_RANGE(0x0000, 0x00ff) AM_READ(test_r )
529   AM_RANGE(0x0100, 0x0101) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
530   AM_RANGE(0x0102, 0x0103) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
529   AM_RANGE(0x0100, 0x0101) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
530   AM_RANGE(0x0102, 0x0103) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
531531//  AM_RANGE(0x0200, 0x0201) AM_READ(test_r )
532532ADDRESS_MAP_END
533533
trunk/src/mame/drivers/circus.c
r243488r243489
66
77Robot Bowl           1977  6502   4020-4027, 4010-4013
88Circus               1977  6502   9000-9003, 9004-9011
9Football         Aug,1978  6502   unknown
10Rip Cord         May,1979  6502   RC30-0014 (cpu) 0015 (snd)
9Trapeze          Jun 1978  6502   unknown
10Football         Aug 1978  6502   unknown
11Rip Cord         May 1979  6502   RC30-0014 (cpu) 0015 (snd)
1112                                  9023-9026, 9027-9034, 9035
12Crash           July,1979  6502   CR30-3162 (cpu) 3161 (snd)  9036 (?)
13Crash           July 1979  6502   CR30-3162 (cpu) 3161 (snd)  9036 (?)
1314
1415***************************************************************************
1516
trunk/src/mame/drivers/cyclemb.c
r243488r243489
8484      : driver_device(mconfig, type, tag),
8585      m_maincpu(*this, "maincpu"),
8686      m_audiocpu(*this, "audiocpu"),
87      m_gfxdecode(*this, "gfxdecode"),
88      m_palette(*this, "palette"),
8789      m_vram(*this, "vram"),
8890      m_cram(*this, "cram"),
8991      m_obj1_ram(*this, "obj1_ram"),
9092      m_obj2_ram(*this, "obj2_ram"),
91      m_obj3_ram(*this, "obj3_ram"),
92      m_gfxdecode(*this, "gfxdecode"),
93      m_palette(*this, "palette")
93      m_obj3_ram(*this, "obj3_ram")
9494   { }
9595
9696   required_device<cpu_device> m_maincpu;
9797   required_device<cpu_device> m_audiocpu;
98   required_device<gfxdecode_device> m_gfxdecode;
99   required_device<palette_device> m_palette;
100   
98101   required_shared_ptr<UINT8> m_vram;
99102   required_shared_ptr<UINT8> m_cram;
100103   required_shared_ptr<UINT8> m_obj1_ram;
101104   required_shared_ptr<UINT8> m_obj2_ram;
102105   required_shared_ptr<UINT8> m_obj3_ram;
103   required_device<gfxdecode_device> m_gfxdecode;
104   required_device<palette_device> m_palette;
105106
106107   struct
107108   {
r243488r243489
120121   DECLARE_WRITE8_MEMBER(cyclemb_flip_w);
121122   DECLARE_READ8_MEMBER(skydest_i8741_0_r);
122123   DECLARE_WRITE8_MEMBER(skydest_i8741_0_w);
124   
123125   DECLARE_DRIVER_INIT(skydest);
124126   DECLARE_DRIVER_INIT(cyclemb);
127   virtual void machine_start();
125128   virtual void machine_reset();
126   virtual void video_start();
127129   DECLARE_PALETTE_INIT(cyclemb);
130   
128131   UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
129132   UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
130133   void cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
r243488r243489
164167}
165168
166169
167void cyclemb_state::video_start()
168{
169}
170
171170void cyclemb_state::cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
172171{
173172   gfx_element *gfx = m_gfxdecode->gfx(0);
r243488r243489
593592   AM_RANGE(0x40, 0x40) AM_READ(soundlatch_byte_r) AM_WRITE(soundlatch2_byte_w)
594593ADDRESS_MAP_END
595594
595
596void cyclemb_state::machine_start()
597{
598   for (int i = 0; i < 2; i++)
599   {
600      save_item(NAME(m_mcu[i].rxd), i);
601      save_item(NAME(m_mcu[i].txd), i);
602      save_item(NAME(m_mcu[i].rst), i);
603      save_item(NAME(m_mcu[i].state), i);
604      save_item(NAME(m_mcu[i].packet_type), i);
605   }
606}
607
596608void cyclemb_state::machine_reset()
597609{
598610   skydest_i8741_reset();
r243488r243489
10301042   m_dsw_pc_hack = 0x554;
10311043}
10321044
1033GAME( 1984, cyclemb,  0,   cyclemb,  cyclemb, cyclemb_state,  cyclemb, ROT0, "Taito Corporation", "Cycle Maabou (Japan)", GAME_NO_COCKTAIL | GAME_NO_SOUND )
1034GAME( 1985, skydest,  0,   skydest,  skydest, cyclemb_state,  skydest, ROT0, "Taito Corporation", "Sky Destroyer (Japan)", GAME_NO_COCKTAIL | GAME_NO_SOUND )
1045GAME( 1984, cyclemb,  0,   cyclemb,  cyclemb, cyclemb_state,  cyclemb, ROT0, "Taito Corporation", "Cycle Maabou (Japan)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
1046GAME( 1985, skydest,  0,   skydest,  skydest, cyclemb_state,  skydest, ROT0, "Taito Corporation", "Sky Destroyer (Japan)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/dlair2.c
r243488r243489
205205ROM_START( dlair2 )
206206   ROM_REGION( 0x10000, "ipl", 0 )
207207   ROM_LOAD( "dl2_319.bin",     0x00000, 0x10000, CRC(e9453a1b) SHA1(eb1201abd0124f6edbabd49bec81af827369cb2c) )
208   
209   DISK_REGION( "laserdisc" )
210   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
208211ROM_END
209212
210213ROM_START( dlair2_319e )
211214   ROM_REGION( 0x10000, "ipl", 0 )
212215   ROM_LOAD( "dl2euro3.19.bin", 0x00000, 0x10000, CRC(cc23ad9f) SHA1(24add8f03749dcc27b1b166dc2e5d346534a0088) )
216   
217   DISK_REGION( "laserdisc" )
218   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
213219ROM_END
214220
215221ROM_START( dlair2_319s )
216222   ROM_REGION( 0x10000, "ipl", 0 )
217223   ROM_LOAD( "dl2-span.bin",    0x00000, 0x10000, CRC(4b9a811d) SHA1(6fe580f541305422f89edbbf475f7c5f17153738) )
224
225   DISK_REGION( "laserdisc" )
226   DISK_IMAGE_READONLY( "dlair2_span", 0, NO_DUMP )
218227ROM_END
219228
220229ROM_START( dlair2_318 )
221230   ROM_REGION( 0x10000, "ipl", 0 )
222231   ROM_LOAD( "dl2_318.bin",     0x00000, 0x10000, CRC(64706492) SHA1(99c92572c59ce1206847a5363d3791196fccd742) )
232
233   DISK_REGION( "laserdisc" )
234   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
223235ROM_END
224236
225237ROM_START( dlair2_317e )
226238   ROM_REGION( 0x10000, "ipl", 0 )
227239   ROM_LOAD( "dl2euro3.17.bin", 0x00000, 0x10000, CRC(743f65a5) SHA1(45199983156c561b8e88c69bef454fd4042579bb) )
240
241   DISK_REGION( "laserdisc" )
242   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
228243ROM_END
229244
230245ROM_START( dlair2_316e )
231246   ROM_REGION( 0x10000, "ipl", 0 )
232247   ROM_LOAD( "dl2euro.bin",     0x00000, 0x10000, CRC(d68f1b13) SHA1(cc9ee307b4d3caba049be6226163c810cf89ab44) )
248
249   DISK_REGION( "laserdisc" )
250   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
233251ROM_END
234252
235253ROM_START( dlair2_315 )
236254   ROM_REGION( 0x10000, "ipl", 0 )
237255   ROM_LOAD( "dl2_315.rom",     0x00000, 0x10000, CRC(13ec0600) SHA1(9366dfac4508c4a723d688016b8cddb57aa6f5f1) )
256
257   DISK_REGION( "laserdisc" )
258   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
238259ROM_END
239260
240261ROM_START( dlair2_315s )
241262   ROM_REGION( 0x10000, "ipl", 0 )
242263   ROM_LOAD( "315pi.bin",       0x00000, 0x10000, CRC(75d8861a) SHA1(56ab31a760f43f98fa40396ee7d7af7ce982d28d) )
264
265   DISK_REGION( "laserdisc" )
266   DISK_IMAGE_READONLY( "dlair2_span", 0, NO_DUMP )
243267ROM_END
244268
245269ROM_START( dlair2_314 )
246270   ROM_REGION( 0x10000, "ipl", 0 )
247271   ROM_LOAD( "dl2_314.bin",     0x00000, 0x10000, CRC(af92b612) SHA1(a0b986fa8a0f2206beedf1dcaed4d108599947ff) )
272
273   DISK_REGION( "laserdisc" )
274   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
248275ROM_END
249276
250277ROM_START( dlair2_312 )
251278   ROM_REGION( 0x10000, "ipl", 0 )
252279   ROM_LOAD( "312.bin",         0x00000, 0x10000, CRC(c842be6b) SHA1(bf548ea3c6e98cd93f79408c3b9f0e1e22cc8bd1) )
280
281   DISK_REGION( "laserdisc" )
282   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
253283ROM_END
254284
255285ROM_START( dlair2_300 )
256286   ROM_REGION( 0x10000, "ipl", 0 )
257287   ROM_LOAD( "dl2_300.bin",     0x00000, 0x10000, CRC(dec4f2e3) SHA1(fd96378c78df4aacd4b2190823ec5c1591199d44) )
288
289   DISK_REGION( "laserdisc" )
290   DISK_IMAGE_READONLY( "C-910-00002-00", 0, NO_DUMP )
258291ROM_END
259292
260293ROM_START( dlair2_211 )
261294   ROM_REGION( 0x10000, "ipl", 0 )
262295   ROM_LOAD( "dl2_211.bin",     0x00000, 0x10000, CRC(9f2660a3) SHA1(bf35356aab0138f86e6ea18c7bcf4f3f3c428d98) )
296
297   DISK_REGION( "laserdisc" )
298   DISK_IMAGE_READONLY( "C-910-00001-00", 0, NO_DUMP )
263299ROM_END
264300
265301ROM_START( dlair2_200 )
r243488r243489
269305   ROM_REGION( 0x2000, "bios", 0 ) /* BIOS for proto board */
270306   ROM_LOAD( "dl2_amoa_proto_bios_mod_56ee.bin",0x00000, 0x2000, CRC(1fc21576) SHA1(dc5443f6a8d80ec8148314244f05ac0290e380ea) )
271307
308   DISK_REGION( "laserdisc" )
309   DISK_IMAGE_READONLY( "dl2-sa91_proto", 0, NO_DUMP )
272310ROM_END
273311
274312ROM_START( spacea91 )
275313   ROM_REGION( 0x10000, "ipl", 0 )
276314   ROM_LOAD( "ace.dat",         0x00000, 0x10000, CRC(de93a213) SHA1(1c95d5f45292f08149d749e1f7b5d9409d3a266e) )
315
316   DISK_REGION( "laserdisc" )
317   DISK_IMAGE_READONLY( "spaceace91", 0, NO_DUMP )
277318ROM_END
278319
279320ROM_START( spacea91_13e )
280321   ROM_REGION( 0x10000, "ipl", 0 )
281322   ROM_LOAD( "sa91euro1.3.bin", 0x00000, 0x10000, CRC(27dd0486) SHA1(8a57510b466381d9962e5397d89a7a3e73d757b0) )
323
324   DISK_REGION( "laserdisc" )
325   DISK_IMAGE_READONLY( "spaceace91", 0, NO_DUMP )
282326ROM_END
283327
284328
trunk/src/mame/drivers/equites.c
r243488r243489
33Equites           (c) 1984 Alpha Denshi Co./Sega   8303
44Bull Fighter      (c) 1984 Alpha Denshi Co./Sega   8303
55Gekisou           (c) 1985 Eastern Corp.           8304
6Violent Run       (c) 1985 Eastern Corp.           8304? (probably on Equites HW)
67The Koukouyakyuh  (c) 1985 Alpha Denshi Co.        8304
78Splendor Blast    (c) 1985 Alpha Denshi Co.        8303
89High Voltage      (c) 1985 Alpha Denshi Co.        8304 (POST says 8404)
trunk/src/mame/drivers/gladiatr.c
r243488r243489
99          input port patches, panning fix, sprite banking,
1010          Golden Castle Rom Set Support
1111- Phil Stroffolino: palette, sprites, misc video driver fixes
12- Tatsuyuki Satoh: YM2203 sound improvements, NEC 8741 simulation,ADPCM with MC6809
12- Tatsuyuki Satoh: YM2203 sound improvements, NEC 8741 simulation, ADPCM with MC6809
1313- Tomasz Slanina   preliminary Ping Pong King driver
1414- Nicola Salmoria  clean up
1515
r243488r243489
1717- Camilty for precious hardware information and screenshots
1818- Jason Richmond for hardware information and misc. notes
1919- Joe Rounceville for schematics
20- and everyone else who'se offered support along the way!
20- and everyone else who's offered support along the way!
2121
2222
2323***************************************************************************
r243488r243489
268268}
269269
270270/*Sound Functions*/
271WRITE8_MEMBER(gladiatr_state::glad_adpcm_w)
271WRITE8_MEMBER(gladiatr_state::gladiator_adpcm_w)
272272{
273273   UINT8 *rom = memregion("audiocpu")->base() + 0x10000;
274274
r243488r243489
280280   m_msm->vclk_w (BIT(data, 4)); /* bit4     */
281281}
282282
283WRITE8_MEMBER(gladiatr_state::glad_cpu_sound_command_w)
283WRITE8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_w)
284284{
285285   soundlatch_byte_w(space,0,data);
286286   m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
287287}
288288
289READ8_MEMBER(gladiatr_state::glad_cpu_sound_command_r)
289READ8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_r)
290290{
291291   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
292292   return soundlatch_byte_r(space,0);
r243488r243489
299299
300300
301301#if 1
302/* !!!!! patch to IRQ timming for 2nd CPU !!!!! */
302/* !!!!! patch to IRQ timing for 2nd CPU !!!!! */
303303WRITE8_MEMBER(gladiatr_state::gladiatr_irq_patch_w)
304304{
305305   m_subcpu->set_input_line(0, HOLD_LINE);
r243488r243489
312312
313313
314314
315WRITE8_MEMBER(gladiatr_state::qx0_w)
315WRITE8_MEMBER(gladiatr_state::ppking_qx0_w)
316316{
317317   if(!offset)
318318   {
r243488r243489
321321   }
322322}
323323
324WRITE8_MEMBER(gladiatr_state::qx1_w)
324WRITE8_MEMBER(gladiatr_state::ppking_qx1_w)
325325{
326326   if(!offset)
327327   {
r243488r243489
330330   }
331331}
332332
333WRITE8_MEMBER(gladiatr_state::qx2_w){ }
333WRITE8_MEMBER(gladiatr_state::ppking_qx2_w){ }
334334
335WRITE8_MEMBER(gladiatr_state::qx3_w){ }
335WRITE8_MEMBER(gladiatr_state::ppking_qx3_w){ }
336336
337READ8_MEMBER(gladiatr_state::qx2_r){ return machine().rand(); }
337READ8_MEMBER(gladiatr_state::ppking_qx2_r){ return machine().rand(); }
338338
339READ8_MEMBER(gladiatr_state::qx3_r){ return machine().rand()&0xf; }
339READ8_MEMBER(gladiatr_state::ppking_qx3_r){ return machine().rand()&0xf; }
340340
341READ8_MEMBER(gladiatr_state::qx0_r)
341READ8_MEMBER(gladiatr_state::ppking_qx0_r)
342342{
343343   if(!offset)
344344         return m_data1;
r243488r243489
346346      return m_flag2;
347347}
348348
349READ8_MEMBER(gladiatr_state::qx1_r)
349READ8_MEMBER(gladiatr_state::ppking_qx1_r)
350350{
351351   if(!offset)
352352      return m_data2;
r243488r243489
364364   AM_RANGE(0x0000, 0xbfff) AM_ROM
365365   AM_RANGE(0xc000, 0xcbff) AM_RAM AM_SHARE("spriteram")
366366   AM_RANGE(0xcc00, 0xcfff) AM_WRITE(ppking_video_registers_w)
367   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_SHARE("paletteram")
368   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_SHARE("videoram")
369   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_SHARE("colorram")
370   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_SHARE("textram")
367   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
368   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
369   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
370   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(textram_w) AM_SHARE("textram")
371371   AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
372372ADDRESS_MAP_END
373373
r243488r243489
379379
380380static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, gladiatr_state )
381381//  ADDRESS_MAP_GLOBAL_MASK(0xff)
382   AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w)
382   AM_RANGE(0xc000, 0xc000) AM_WRITE(spritebuffer_w)
383383   AM_RANGE(0xc004, 0xc004) AM_NOP // WRITE(ppking_irq_patch_w)
384   AM_RANGE(0xc09e, 0xc09f) AM_READ(qx0_r) AM_WRITE(qx0_w)
384   AM_RANGE(0xc09e, 0xc09f) AM_READ(ppking_qx0_r) AM_WRITE(ppking_qx0_w)
385385   AM_RANGE(0xc0bf, 0xc0bf) AM_NOP
386386ADDRESS_MAP_END
387387
388388static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, gladiatr_state )
389389   ADDRESS_MAP_GLOBAL_MASK(0xff)
390390   AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)
391   AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w)
391   AM_RANGE(0x20, 0x21) AM_READ(ppking_qx1_r) AM_WRITE(ppking_qx1_w)
392392   AM_RANGE(0x40, 0x40) AM_READNOP
393   AM_RANGE(0x60, 0x61) AM_READWRITE(qx2_r,qx2_w)
394   AM_RANGE(0x80, 0x81) AM_READWRITE(qx3_r,qx3_w)
393   AM_RANGE(0x60, 0x61) AM_READWRITE(ppking_qx2_r,ppking_qx2_w)
394   AM_RANGE(0x80, 0x81) AM_READWRITE(ppking_qx3_r,ppking_qx3_w)
395395ADDRESS_MAP_END
396396
397397
r243488r243489
402402   AM_RANGE(0x6000, 0xbfff) AM_ROMBANK("bank1")
403403   AM_RANGE(0xc000, 0xcbff) AM_RAM AM_SHARE("spriteram")
404404   AM_RANGE(0xcc00, 0xcfff) AM_WRITE(gladiatr_video_registers_w)
405   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_SHARE("paletteram")
406   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_SHARE("videoram")
407   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_SHARE("colorram")
408   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_SHARE("textram")
405   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
406   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
407   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
408   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(textram_w) AM_SHARE("textram")
409409   AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
410410ADDRESS_MAP_END
411411
r243488r243489
415415ADDRESS_MAP_END
416416
417417static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
418   AM_RANGE(0x1000, 0x1fff) AM_WRITE(glad_adpcm_w)
419   AM_RANGE(0x2000, 0x2fff) AM_READ(glad_cpu_sound_command_r)
418   AM_RANGE(0x1000, 0x1fff) AM_WRITE(gladiator_adpcm_w)
419   AM_RANGE(0x2000, 0x2fff) AM_READ(gladiator_cpu_sound_command_r)
420420   AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2")
421421ADDRESS_MAP_END
422422
423423
424424static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8, gladiatr_state )
425425//  ADDRESS_MAP_GLOBAL_MASK(0xff)
426   AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w)
426   AM_RANGE(0xc000, 0xc000) AM_WRITE(spritebuffer_w)
427427   AM_RANGE(0xc001, 0xc001) AM_WRITE(gladiatr_spritebank_w)
428428   AM_RANGE(0xc002, 0xc002) AM_WRITE(gladiatr_bankswitch_w)
429429   AM_RANGE(0xc004, 0xc004) AM_WRITE(gladiatr_irq_patch_w) /* !!! patch to 2nd CPU IRQ !!! */
r243488r243489
440440   AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_2, write_2)
441441   AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_3, write_3)
442442   AM_RANGE(0xa0, 0xa7) AM_NOP // filters on sound output
443   AM_RANGE(0xe0, 0xe0) AM_WRITE(glad_cpu_sound_command_w)
443   AM_RANGE(0xe0, 0xe0) AM_WRITE(gladiator_cpu_sound_command_w)
444444ADDRESS_MAP_END
445445
446446
r243488r243489
611611
612612
613613
614READ8_MEMBER(gladiatr_state::f1_r)
614READ8_MEMBER(gladiatr_state::ppking_f1_r)
615615{
616616   return machine().rand();
617617}
r243488r243489
655655   MCFG_SPEAKER_STANDARD_MONO("mono")
656656
657657   MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
658   MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, f1_r))
659   MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, f1_r))
658   MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, ppking_f1_r))
659   MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, ppking_f1_r))
660660   MCFG_SOUND_ROUTE(0, "mono", 0.60)
661661   MCFG_SOUND_ROUTE(1, "mono", 0.60)
662662   MCFG_SOUND_ROUTE(2, "mono", 0.60)
r243488r243489
10011001}
10021002
10031003
1004READ8_MEMBER(gladiatr_state::f6a3_r)
1004READ8_MEMBER(gladiatr_state::ppking_f6a3_r)
10051005{
10061006   if(space.device().safe_pcbase()==0x8e)
10071007      m_nvram[0x6a3]=1;
r243488r243489
10311031         rom[i+2*j*0x2000] = rom[i+j*0x2000];
10321032      }
10331033   }
1034   m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(gladiatr_state::f6a3_r),this));
1034   m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(gladiatr_state::ppking_f6a3_r),this));
1035   
1036   save_item(NAME(m_data1));
1037   save_item(NAME(m_data2));
10351038}
10361039
10371040
10381041
1039GAME( 1985, ppking,   0,        ppking,   0,        gladiatr_state, ppking,   ROT90, "Taito America Corporation", "Ping-Pong King", GAME_NOT_WORKING)
1040GAME( 1986, gladiatr, 0,        gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito America Corporation", "Gladiator (US)", 0 )
1041GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", 0 )
1042GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Great Gurianos (Japan?)", 0 )
1043GAME( 1986, gcastle,  gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Golden Castle (prototype?)", 0 ) // incomplete dump
1042GAME( 1985, ppking,   0,        ppking,   0,        gladiatr_state, ppking,   ROT90, "Taito America Corporation", "Ping-Pong King", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1043GAME( 1986, gladiatr, 0,        gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito America Corporation", "Gladiator (US)", GAME_SUPPORTS_SAVE )
1044GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", GAME_SUPPORTS_SAVE )
1045GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Great Gurianos (Japan?)", GAME_SUPPORTS_SAVE )
1046GAME( 1986, gcastle,  gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0,  "Allumer / Taito Corporation", "Golden Castle (prototype?)", GAME_SUPPORTS_SAVE ) // incomplete dump
trunk/src/mame/drivers/gsword.c
r243488r243489
44
55TODO:
66
7-joshi vollyball
7-joshi volleyball
88   -The incomplete graphic
99   -The implementation of DAC sound ?
1010   -MCU code DUMP and emulation
r243488r243489
1414Credits:
1515- Steve Ellenoff: Original emulation and Mame driver
1616- Jarek Parchanski: Dip Switch Fixes, Color improvements, ADPCM Interface code
17- Tatsuyuki Satoh: sound improvements, NEC 8741 emulation,adpcm improvements,
17- Tatsuyuki Satoh: sound improvements, NEC 8741 emulation, adpcm improvements,
1818            josvollyvall 8741 emulation
1919- Charlie Miltenberger: sprite colors improvements & precious hardware
2020            information and screenshots
r243488r243489
144144#include "emu.h"
145145#include "cpu/z80/z80.h"
146146#include "machine/tait8741.h"
147#include "sound/ay8910.h"
148147#include "sound/msm5205.h"
149148#include "includes/gsword.h"
150149
151150
152151#if 0
153int gsword_state::gsword_coins_in(void)
152int gsword_state::coins_in(void)
154153{
155154   /* emulate 8741 coin slot */
156155   if (ioport("IN4")->read() & 0xc0)
r243488r243489
165164
166165#include "cpu/z80/z80.h"
167166
167
168168/* CPU 2 memory hack */
169169/* (402E) timeout upcount must be under 0AH                         */
170170/* (4004,4005) clear down counter , if (4004,4005)==0 then (402E)=0 */
r243488r243489
174174
175175   /*if(offset==1)osd_printf_debug("CNT %02X%02X\n",m_cpu2_ram[5],m_cpu2_ram[4]); */
176176
177   /* speedup timeout cound down */
177   /* speedup timeout count down */
178178   if(m_protect_hack)
179179   {
180180      switch(offset)
r243488r243489
219219   return 0;
220220}
221221
222MACHINE_RESET_MEMBER(gsword_state,gsword)
222void gsword_state::machine_start()
223223{
224   save_item(NAME(m_fake8910_0));
225   save_item(NAME(m_fake8910_1));
226   save_item(NAME(m_nmi_enable));
227   save_item(NAME(m_protect_hack));
228}
229
230void gsword_state::machine_reset()
231{
224232   m_coins = 0;
225233
226234   /* snd CPU mask NMI during reset phase */
r243488r243489
228236   m_protect_hack = 0;
229237}
230238
231MACHINE_RESET_MEMBER(gsword_state,josvolly)
232{
233}
234
235239INTERRUPT_GEN_MEMBER(gsword_state::gsword_snd_interrupt)
236240{
237241   if(m_nmi_enable)
238242      device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
239243}
240244
241WRITE8_MEMBER(gsword_state::gsword_nmi_set_w)
245WRITE8_MEMBER(gsword_state::nmi_set_w)
242246{
243247/*  osd_printf_debug("AY write %02X\n",data);*/
244248
r243488r243489
253257   switch(data)
254258   {
255259   case 0xff:
256      m_nmi_enable = 0; /* NMI must be disable */
260      m_nmi_enable = 0; /* NMI must be disabled */
257261      break;
258262   case 0x02:
259263      m_nmi_enable = 0; /* ANY */
r243488r243489
262266      m_nmi_enable = 1;
263267      break;
264268   case 0x0f:
265      m_nmi_enable = 1; /* NMI must be enable */
269      m_nmi_enable = 1; /* NMI must be enabled */
266270      break;
267271   case 0xfe:
268      m_nmi_enable = 1; /* NMI must be enable */
272      m_nmi_enable = 1; /* NMI must be enabled */
269273      break;
270274   }
271275   /* bit1= nmi disable , for ram check */
r243488r243489
273277#endif
274278}
275279
276WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_0_w)
280WRITE8_MEMBER(gsword_state::ay8910_control_port_0_w)
277281{
278   ay8910_device *ay8910 = machine().device<ay8910_device>("ay1");
279   ay8910->address_w(space,offset,data);
282   m_ay0->address_w(space,offset,data);
280283   m_fake8910_0 = data;
281284}
282WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_1_w)
285WRITE8_MEMBER(gsword_state::ay8910_control_port_1_w)
283286{
284   ay8910_device *ay8910 = machine().device<ay8910_device>("ay2");
285   ay8910->address_w(space,offset,data);
287   m_ay1->address_w(space,offset,data);
286288   m_fake8910_1 = data;
287289}
288290
289READ8_MEMBER(gsword_state::gsword_fake_0_r)
291READ8_MEMBER(gsword_state::fake_0_r)
290292{
291293   return m_fake8910_0+1;
292294}
293READ8_MEMBER(gsword_state::gsword_fake_1_r)
295READ8_MEMBER(gsword_state::fake_1_r)
294296{
295297   return m_fake8910_1+1;
296298}
r243488r243489
308310   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
309311}
310312
313
311314static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state )
312315   AM_RANGE(0x0000, 0x8fff) AM_ROM
313316   AM_RANGE(0x9000, 0x9fff) AM_RAM
r243488r243489
315318   AM_RANGE(0xa380, 0xa3ff) AM_RAM AM_SHARE("spritetile_ram")
316319   AM_RANGE(0xa400, 0xa77f) AM_RAM
317320   AM_RANGE(0xa780, 0xa7ff) AM_RAM AM_SHARE("spritexy_ram")
318   AM_RANGE(0xa980, 0xa980) AM_WRITE(gsword_charbank_w)
319   AM_RANGE(0xaa80, 0xaa80) AM_WRITE(gsword_videoctrl_w)   /* flip screen, char palette bank */
320   AM_RANGE(0xab00, 0xab00) AM_WRITE(gsword_scroll_w)
321   AM_RANGE(0xa980, 0xa980) AM_WRITE(charbank_w)
322   AM_RANGE(0xaa80, 0xaa80) AM_WRITE(videoctrl_w)   /* flip screen, char palette bank */
323   AM_RANGE(0xab00, 0xab00) AM_WRITE(scroll_w)
321324   AM_RANGE(0xab80, 0xabff) AM_WRITEONLY AM_SHARE("spriteattram")
322   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(gsword_videoram_w) AM_SHARE("videoram")
325   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
323326ADDRESS_MAP_END
324327
325328static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8, gsword_state )
r243488r243489
344347   AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_2, write_2)
345348   AM_RANGE(0x20, 0x21) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_3, write_3)
346349   AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_1, write_1)
347   AM_RANGE(0x60, 0x60) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w)
350   AM_RANGE(0x60, 0x60) AM_READWRITE(fake_0_r, ay8910_control_port_0_w)
348351   AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w)
349   AM_RANGE(0x80, 0x80) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w)
352   AM_RANGE(0x80, 0x80) AM_READWRITE(fake_1_r, ay8910_control_port_1_w)
350353   AM_RANGE(0x81, 0x81) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w)
351354//
352355   AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */
r243488r243489
378381
379382static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, gsword_state )
380383   ADDRESS_MAP_GLOBAL_MASK(0xff)
381   AM_RANGE(0x00, 0x00) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w)
384   AM_RANGE(0x00, 0x00) AM_READWRITE(fake_0_r, ay8910_control_port_0_w)
382385   AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w)
383   AM_RANGE(0x40, 0x40) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w)
386   AM_RANGE(0x40, 0x40) AM_READWRITE(fake_1_r, ay8910_control_port_1_w)
384387   AM_RANGE(0x41, 0x41) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w)
385388
386389   AM_RANGE(0x81, 0x81) AM_DEVWRITE("josvolly_8741", josvolly8741_4pack_device, nmi_enable_w)
r243488r243489
638641
639642   MCFG_QUANTUM_TIME(attotime::from_hz(12000)) /* Allow time for 2nd cpu to interleave*/
640643
641   MCFG_MACHINE_RESET_OVERRIDE(gsword_state,gsword)
642
643644   MCFG_TAITO8741_ADD("taito8741")
644645   MCFG_TAITO8741_MODES(TAITO8741_MASTER,TAITO8741_SLAVE,TAITO8741_PORT,TAITO8741_PORT)
645646   MCFG_TAITO8741_CONNECT(1,0,0,0)
r243488r243489
670671   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
671672
672673   MCFG_SOUND_ADD("ay2", AY8910, 1500000)
673   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */
674   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, nmi_set_w)) /* portA write */
674675   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
675676
676677   MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb */
r243488r243489
691692   MCFG_CPU_IO_MAP(josvolly_cpu2_io_map)
692693   MCFG_CPU_VBLANK_INT_DRIVER("screen", gsword_state,  irq0_line_hold)
693694
694   MCFG_MACHINE_RESET_OVERRIDE(gsword_state,josvolly)
695
696695   MCFG_JOSVOLLY8741_ADD("josvolly_8741")
697696   MCFG_JOSVOLLY8741_CONNECT(1,0,0,0)
698697   MCFG_JOSVOLLY8741_PORT_HANDLERS(IOPORT("DSW1"),IOPORT("DSW2"),IOPORT("DSW1"),IOPORT("DSW2"))
r243488r243489
719718   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
720719
721720   MCFG_SOUND_ADD("ay2", AY8910, 1500000)
722   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */
721   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, nmi_set_w)) /* portA write */
723722   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
724723
725724#if 0
r243488r243489
901900}
902901
903902
904GAME( 1983, josvolly, 0,      josvolly, josvolly, driver_device,  0,       ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
905GAME( 1984, gsword,   0,      gsword,   gsword,   gsword_state,   gsword,  ROT0,  "Allumer / Taito Corporation", "Great Swordsman (World?)", 0 )
906GAME( 1984, gsword2,  gsword, gsword,   gsword,   gsword_state,   gsword2, ROT0,  "Allumer / Taito Corporation", "Great Swordsman (Japan?)", 0 )
903GAME( 1983, josvolly, 0,      josvolly, josvolly, driver_device,  0,       ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
904GAME( 1984, gsword,   0,      gsword,   gsword,   gsword_state,   gsword,  ROT0,  "Allumer / Taito Corporation", "Great Swordsman (World?)", GAME_SUPPORTS_SAVE )
905GAME( 1984, gsword2,  gsword, gsword,   gsword,   gsword_state,   gsword2, ROT0,  "Allumer / Taito Corporation", "Great Swordsman (Japan?)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/hornet.c
r243488r243489
338338      m_gn680(*this, "gn680"),
339339      m_dsp(*this, "dsp"),
340340      m_dsp2(*this, "dsp2"),
341      m_eeprom(*this, "eeprom"),
342341      m_k037122_1(*this, "k037122_1"),
343342      m_k037122_2(*this, "k037122_2" ),
344343      m_adc12138(*this, "adc12138"),
344      m_konppc(*this, "konppc"),
345      m_lan_eeprom(*this, "lan_eeprom"),
345346      m_in0(*this, "IN0"),
346347      m_in1(*this, "IN1"),
347348      m_in2(*this, "IN2"),
348349      m_dsw(*this, "DSW"),
349350      m_eepromout(*this, "EEPROMOUT"),
350351      m_analog1(*this, "ANALOG1"),
351      m_analog2(*this, "ANALOG2"),
352      m_konppc(*this, "konppc"){ }
352      m_analog2(*this, "ANALOG2")
353   { }
353354
354355   // TODO: Needs verification on real hardware
355356   static const int m_sound_timer_usec = 2800;
r243488r243489
363364   optional_device<cpu_device> m_gn680;
364365   required_device<cpu_device> m_dsp;
365366   optional_device<cpu_device> m_dsp2;
366   required_device<eeprom_serial_93cxx_device> m_eeprom;
367367   optional_device<k037122_device> m_k037122_1;
368368   optional_device<k037122_device> m_k037122_2;
369369   required_device<adc12138_device> m_adc12138;
370   required_ioport m_in0, m_in1, m_in2, m_dsw, m_eepromout;
371   optional_ioport m_analog1, m_analog2;
372370   required_device<konppc_device> m_konppc;
371   optional_device<eeprom_serial_93cxx_device> m_lan_eeprom;
372   required_ioport m_in0, m_in1, m_in2, m_dsw;
373   optional_ioport m_eepromout, m_analog1, m_analog2;
373374
374375   emu_timer *m_sound_irq_timer;
375376   UINT8 m_led_reg0;
r243488r243489
534535             0x02 = ADDOR (ADC DOR)
535536             0x01 = ADDO (ADC DO)
536537         */
537         r = 0xf0 | (m_eeprom->do_read() << 3);
538         r = 0xf0;
539         if (m_lan_eeprom)
540            r |= m_lan_eeprom->do_read() << 3;
538541         r |= m_adc12138->do_r(space, 0) | (m_adc12138->eoc_r(space, 0) << 2);
539542         break;
540543
r243488r243489
572575             0x02 = LAMP1
573576             0x01 = LAMP0
574577         */
575         m_eepromout->write(data, 0xff);
578         if (m_eepromout)
579            m_eepromout->write(data, 0xff);
576580         osd_printf_debug("System register 0 = %02X\n", data);
577581         break;
578582
r243488r243489
877881   PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8")
878882   PORT_DIPSETTING( 0x01, "24KHz" )
879883   PORT_DIPSETTING( 0x00, "15KHz" )
880
881   PORT_START( "EEPROMOUT" )
882   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
883   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
884   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
885884INPUT_PORTS_END
886885
887886static INPUT_PORTS_START( sscope )
r243488r243489
902901   PORT_BIT( 0x7ff, 0x3ff, IPT_AD_STICK_Y ) PORT_MINMAX(0x000, 0x7ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_INVERT
903902INPUT_PORTS_END
904903
904static INPUT_PORTS_START( sscope2 )
905   PORT_INCLUDE( sscope )
905906
907   // LAN board EEPROM
908   PORT_START( "EEPROMOUT" )
909   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, di_write)
910   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, clk_write)
911   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, cs_write)
912INPUT_PORTS_END
913
914
906915/* PowerPC interrupts
907916
908917    IRQ0:   Vblank CG Board 0
r243488r243489
977986
978987   MCFG_QUANTUM_TIME(attotime::from_hz(6000))
979988
989//  PCB description at top doesn't mention any EEPROM on the base board...
990//   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
980991
981   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
982
983992   MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK)
984993   MCFG_VOODOO_FBMEM(2)
985994   MCFG_VOODOO_TMUMEM(4,0)
r243488r243489
15281537
15291538/*************************************************************************/
15301539
1531GAME(  1998, gradius4,  0,        hornet,           hornet, hornet_state, hornet,        ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1532GAME(  1998, nbapbp,    0,        hornet,           hornet, hornet_state, hornet,        ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1533GAMEL( 1998, terabrst,  0,        terabrst,         hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1534GAMEL( 1998, terabrsta, terabrst, terabrst,         hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1540GAME(  1998, gradius4,  0,        hornet,           hornet,  hornet_state, hornet,        ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1541GAME(  1998, nbapbp,    0,        hornet,           hornet,  hornet_state, hornet,        ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
1542GAMEL( 1998, terabrst,  0,        terabrst,         hornet,  hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1543GAMEL( 1998, terabrsta, terabrst, terabrst,         hornet,  hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
15351544
15361545// The region comes from the Timekeeper NVRAM, without a valid default all sets except 'xxD, Ver 1.33' will init their NVRAM to UAx versions, the xxD set seems to incorrectly init it to JXD, which isn't a valid
15371546// version, and thus can't be booted.  If you copy the NVRAM from another already initialized set, it will boot as UAD.
15381547// to get the actual game to boot you must calibrate the guns etc.
1539GAMEL( 2000, sscope,    0,        hornet_2board,    sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1540GAMEL( 2000, sscopec,   sscope,   hornet_2board,    sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1541GAMEL( 2000, sscopeb,   sscope,   hornet_2board,    sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1542GAMEL( 2000, sscopea,   sscope,   hornet_2board,    sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1548GAMEL( 2000, sscope,    0,        hornet_2board,    sscope,  hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1549GAMEL( 2000, sscopec,   sscope,   hornet_2board,    sscope,  hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1550GAMEL( 2000, sscopeb,   sscope,   hornet_2board,    sscope,  hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1551GAMEL( 2000, sscopea,   sscope,   hornet_2board,    sscope,  hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
15431552
1544GAMEL( 2000, sscope2,   0,        sscope2,          sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
1553GAMEL( 2000, sscope2,   0,        sscope2,          sscope2, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
trunk/src/mame/drivers/igs011.c
r243488r243489
233233   void ryukobou_decrypt();
234234   void lhb2_decrypt_gfx();
235235   void drgnwrld_gfx_decrypt();
236   void prot_mem_range_set();
236237};
237238
238239
r243488r243489
11021103   sp.install_rom(m_prot1_addr + 0, m_prot1_addr + 9, rom + m_prot1_addr);
11031104
11041105   m_prot1_addr = (data << 4) ^ 0x8340;
1106   
1107   prot_mem_range_set();
1108}
11051109
1110void igs011_state::prot_mem_range_set()
1111{   
1112   address_space &sp = m_maincpu->space(AS_PROGRAM);
1113   
11061114   // Add protection memory range
11071115   sp.install_write_handler(m_prot1_addr + 0, m_prot1_addr + 7, write16_delegate(FUNC(igs011_state::igs011_prot1_w), this));
11081116   sp.install_read_handler (m_prot1_addr + 8, m_prot1_addr + 9, read16_delegate(FUNC(igs011_state::igs011_prot1_r), this));
r243488r243489
22842292    rom[0x1e6e6/2] = 0x600c;    // 01E6E6: 670C      beq     $1e6f4
22852293    rom[0x1f7ce/2] = 0x600c;    // 01F7CE: 670C      beq     $1f7dc
22862294*/
2295   machine().save().register_postload(save_prepost_delegate(FUNC(igs011_state::prot_mem_range_set), this));
22872296}
22882297
22892298
r243488r243489
23072316    rom[0x1e6e6/2] = 0x600c;    // 01E6E6: 670C      beq     $1e6f4
23082317    rom[0x1f7c8/2] = 0x600c;    // 01F7C8: 670C      beq     1f7d6
23092318*/
2319   machine().save().register_postload(save_prepost_delegate(FUNC(igs011_state::prot_mem_range_set), this));
23102320}
23112321
23122322
trunk/src/mame/drivers/jpmsys5.c
r243488r243489
295295
296296static ADDRESS_MAP_START( 68000_awp_map_saa, AS_PROGRAM, 16, jpmsys5_state )
297297   JPM_SYS5_COMMON_MAP
298   AM_RANGE(0x0460a0, 0x0460a1) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
299   AM_RANGE(0x0460a2, 0x0460a3) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
298   AM_RANGE(0x0460a0, 0x0460a1) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
299   AM_RANGE(0x0460a2, 0x0460a3) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
300300   AM_RANGE(0x04c100, 0x04c105) AM_READWRITE(jpm_upd7759_r, jpm_upd7759_w) // do the SAA boards have the UPD?
301301ADDRESS_MAP_END
302302
trunk/src/mame/drivers/liberate.c
r243488r243489
128128
129129WRITE8_MEMBER(liberate_state::prosoccr_charram_w)
130130{
131   UINT8 *FG_GFX = memregion("fg_gfx")->base();
132
133131   if (m_bank)
134132   {
135133      prosoccr_io_w(space, offset & 0x0f, data);
r243488r243489
142140      switch (offset & 0x1800)
143141      {
144142         case 0x0000:
145            FG_GFX[(offset & 0x7ff) + (0x0000) + 0x0000] = data;
146            //FG_GFX[(offset & 0x7ff) + (0x1800) + 0x0000] = data;
143            m_fg_gfx[(offset & 0x7ff) + (0x0000) + 0x0000] = data;
144            //m_fg_gfx[(offset & 0x7ff) + (0x1800) + 0x0000] = data;
147145            break;
148146         case 0x0800:
149            FG_GFX[(offset & 0x7ff) + (0x0000) + 0x2000] = data;
150            //FG_GFX[(offset & 0x7ff) + (0x1800) + 0x2000] = data;
147            m_fg_gfx[(offset & 0x7ff) + (0x0000) + 0x2000] = data;
148            //m_fg_gfx[(offset & 0x7ff) + (0x1800) + 0x2000] = data;
151149            break;
152150         case 0x1000:
153            FG_GFX[(offset & 0x7ff) + (0x0000) + 0x4000] = data;
154            //FG_GFX[(offset & 0x7ff) + (0x1800) + 0x4000] = data;
151            m_fg_gfx[(offset & 0x7ff) + (0x0000) + 0x4000] = data;
152            //m_fg_gfx[(offset & 0x7ff) + (0x1800) + 0x4000] = data;
155153            break;
156154      }
157155   }
trunk/src/mame/drivers/manohman.c
r243488r243489
155155static ADDRESS_MAP_START( manohman_map, AS_PROGRAM, 16, _manohman_state )
156156   AM_RANGE(0x000000, 0x01ffff) AM_ROM
157157   AM_RANGE(0x100000, 0x100001) AM_NOP     // smell to MAX696 watchdog...
158   AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
159   AM_RANGE(0x300002, 0x300003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
158   AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
159   AM_RANGE(0x300002, 0x300003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
160160   AM_RANGE(0x500000, 0x503fff) AM_RAM
161161   AM_RANGE(0x600006, 0x600007) AM_RAM     // write bitpatterns to compare with the 500000-503ff8 RAM testing.
162162//  AM_RANGE(0xYYYYYY, 0xYYYYYY) AM_RAM
trunk/src/mame/drivers/mastboy.c
r243488r243489
445445public:
446446   mastboy_state(const machine_config &mconfig, device_type type, const char *tag)
447447      : driver_device(mconfig, type, tag),
448         m_nvram(*this, "nvram") ,
449      m_workram(*this, "workram"),
450      m_tileram(*this, "tileram"),
451      m_colram(*this, "colram"),
452448      m_maincpu(*this, "maincpu"),
453449      m_msm(*this, "msm"),
454450      m_gfxdecode(*this, "gfxdecode"),
455      m_palette(*this, "palette") { }
451      m_palette(*this, "palette"),
452      m_nvram(*this, "nvram") ,
453      m_workram(*this, "workram"),
454      m_tileram(*this, "tileram"),
455      m_colram(*this, "colram") { }
456456
457   required_shared_ptr<UINT8>  m_nvram;
457   required_device<cpu_device> m_maincpu;
458   required_device<msm5205_device> m_msm;
459   required_device<gfxdecode_device> m_gfxdecode;
460   required_device<palette_device> m_palette;
461   
462   required_shared_ptr<UINT8> m_nvram;
458463   required_shared_ptr<UINT8> m_workram;
459464   required_shared_ptr<UINT8> m_tileram;
460465   required_shared_ptr<UINT8> m_colram;
466   
461467   UINT8* m_vram;
462468   UINT8 m_bank;
463469   int m_irq0_ack;
r243488r243489
466472   int m_m5205_part;
467473   int m_m5205_sambit0;
468474   int m_m5205_sambit1;
475
469476   DECLARE_READ8_MEMBER(banked_ram_r);
470477   DECLARE_WRITE8_MEMBER(banked_ram_w);
471   DECLARE_WRITE8_MEMBER(mastboy_bank_w);
472   DECLARE_READ8_MEMBER(mastboy_backupram_r);
473   DECLARE_WRITE8_MEMBER(mastboy_backupram_w);
478   DECLARE_WRITE8_MEMBER(bank_w);
479   DECLARE_READ8_MEMBER(backupram_r);
480   DECLARE_WRITE8_MEMBER(backupram_w);
474481   DECLARE_WRITE8_MEMBER(backupram_enable_w);
475   DECLARE_WRITE8_MEMBER(msm5205_mastboy_m5205_sambit0_w);
476   DECLARE_WRITE8_MEMBER(msm5205_mastboy_m5205_sambit1_w);
477   DECLARE_WRITE8_MEMBER(mastboy_msm5205_data_w);
478   DECLARE_WRITE8_MEMBER(mastboy_irq0_ack_w);
479   DECLARE_READ8_MEMBER(mastboy_port_38_read);
480   DECLARE_READ8_MEMBER(mastboy_nmi_read);
481   DECLARE_WRITE8_MEMBER(mastboy_msm5205_reset_w);
482   DECLARE_DRIVER_INIT(mastboy);
482   DECLARE_WRITE8_MEMBER(msm5205_sambit0_w);
483   DECLARE_WRITE8_MEMBER(msm5205_sambit1_w);
484   DECLARE_WRITE8_MEMBER(msm5205_data_w);
485   DECLARE_WRITE8_MEMBER(irq0_ack_w);
486   DECLARE_READ8_MEMBER(port_38_read);
487   DECLARE_READ8_MEMBER(nmi_read);
488   DECLARE_WRITE8_MEMBER(msm5205_reset_w);
489   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
490
491   virtual void machine_start();
483492   virtual void machine_reset();
484493   virtual void video_start();
485   UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
486   INTERRUPT_GEN_MEMBER(mastboy_interrupt);
487   DECLARE_WRITE_LINE_MEMBER(mastboy_adpcm_int);
488   required_device<cpu_device> m_maincpu;
489   required_device<msm5205_device> m_msm;
490   required_device<gfxdecode_device> m_gfxdecode;
491   required_device<palette_device> m_palette;
494
495   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
496
497   INTERRUPT_GEN_MEMBER(interrupt);
492498};
493499
494500
r243488r243489
497503void mastboy_state::video_start()
498504{
499505   m_gfxdecode->gfx(0)->set_source(m_vram);
506   
507   save_pointer(NAME(m_vram), 0x10000);
500508}
501509
502UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
510UINT32 mastboy_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
503511{
504512   int y,x,i;
505513   int count = 0x000;
r243488r243489
609617   }
610618}
611619
612WRITE8_MEMBER(mastboy_state::mastboy_bank_w)
620WRITE8_MEMBER(mastboy_state::bank_w)
613621{
614622   // controls access to banked ram / rom
615623   m_bank = data;
r243488r243489
617625
618626/* Backup RAM access */
619627
620READ8_MEMBER(mastboy_state::mastboy_backupram_r)
628READ8_MEMBER(mastboy_state::backupram_r)
621629{
622630   return m_nvram[offset];
623631}
624632
625WRITE8_MEMBER(mastboy_state::mastboy_backupram_w)
633WRITE8_MEMBER(mastboy_state::backupram_w)
626634{
627635//  if (m_backupram_enabled)
628636//  {
r243488r243489
643651
644652/* MSM5205 Related */
645653
646WRITE8_MEMBER(mastboy_state::msm5205_mastboy_m5205_sambit0_w)
654WRITE8_MEMBER(mastboy_state::msm5205_sambit0_w)
647655{
648656   m_m5205_sambit0 = data & 1;
649657   m_msm->playmode_w((1 << 2) | (m_m5205_sambit1 << 1) | (m_m5205_sambit0) );
r243488r243489
651659   logerror("msm5205 samplerate bit 0, set to %02x\n",data);
652660}
653661
654WRITE8_MEMBER(mastboy_state::msm5205_mastboy_m5205_sambit1_w)
662WRITE8_MEMBER(mastboy_state::msm5205_sambit1_w)
655663{
656664   m_m5205_sambit1 = data & 1;
657665
r243488r243489
660668   logerror("msm5205 samplerate bit 0, set to %02x\n",data);
661669}
662670
663WRITE8_MEMBER(mastboy_state::mastboy_msm5205_reset_w)
671WRITE8_MEMBER(mastboy_state::msm5205_reset_w)
664672{
665673   m_m5205_part = 0;
666674   m_msm->reset_w(data & 1);
667675}
668676
669WRITE8_MEMBER(mastboy_state::mastboy_msm5205_data_w)
677WRITE8_MEMBER(mastboy_state::msm5205_data_w)
670678{
671679   m_m5205_next = data;
672680}
673681
674WRITE_LINE_MEMBER(mastboy_state::mastboy_adpcm_int)
682WRITE_LINE_MEMBER(mastboy_state::adpcm_int)
675683{
676684   m_msm->data_w(m_m5205_next);
677685   m_m5205_next >>= 4;
r243488r243489
684692
685693/* Interrupt Handling */
686694
687WRITE8_MEMBER(mastboy_state::mastboy_irq0_ack_w)
695WRITE8_MEMBER(mastboy_state::irq0_ack_w)
688696{
689697   m_irq0_ack = data;
690698   if ((data & 1) == 1)
691699      m_maincpu->set_input_line(0, CLEAR_LINE);
692700}
693701
694INTERRUPT_GEN_MEMBER(mastboy_state::mastboy_interrupt)
702INTERRUPT_GEN_MEMBER(mastboy_state::interrupt)
695703{
696704   if ((m_irq0_ack & 1) == 1)
697705   {
r243488r243489
711719
712720   AM_RANGE(0xc000, 0xffff) AM_READWRITE(banked_ram_r,banked_ram_w) // mastboy bank area read / write
713721
714   AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(mastboy_backupram_r,mastboy_backupram_w) AM_SHARE("nvram")
722   AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(backupram_r,backupram_w) AM_SHARE("nvram")
715723
716724   AM_RANGE(0xff800, 0xff807) AM_READ_PORT("P1")
717725   AM_RANGE(0xff808, 0xff80f) AM_READ_PORT("P2")
718726   AM_RANGE(0xff810, 0xff817) AM_READ_PORT("DSW1")
719727   AM_RANGE(0xff818, 0xff81f) AM_READ_PORT("DSW2")
720728
721   AM_RANGE(0xff820, 0xff827) AM_WRITE(mastboy_bank_w)
722   AM_RANGE(0xff828, 0xff828) AM_DEVWRITE("saa", saa1099_device, saa1099_data_w)
723   AM_RANGE(0xff829, 0xff829) AM_DEVWRITE("saa", saa1099_device, saa1099_control_w)
724   AM_RANGE(0xff830, 0xff830) AM_WRITE(mastboy_msm5205_data_w)
725   AM_RANGE(0xff838, 0xff838) AM_WRITE(mastboy_irq0_ack_w)
726   AM_RANGE(0xff839, 0xff839) AM_WRITE(msm5205_mastboy_m5205_sambit0_w)
727   AM_RANGE(0xff83a, 0xff83a) AM_WRITE(msm5205_mastboy_m5205_sambit1_w)
728   AM_RANGE(0xff83b, 0xff83b) AM_WRITE(mastboy_msm5205_reset_w)
729   AM_RANGE(0xff820, 0xff827) AM_WRITE(bank_w)
730   AM_RANGE(0xff828, 0xff828) AM_DEVWRITE("saa", saa1099_device, data_w)
731   AM_RANGE(0xff829, 0xff829) AM_DEVWRITE("saa", saa1099_device, control_w)
732   AM_RANGE(0xff830, 0xff830) AM_WRITE(msm5205_data_w)
733   AM_RANGE(0xff838, 0xff838) AM_WRITE(irq0_ack_w)
734   AM_RANGE(0xff839, 0xff839) AM_WRITE(msm5205_sambit0_w)
735   AM_RANGE(0xff83a, 0xff83a) AM_WRITE(msm5205_sambit1_w)
736   AM_RANGE(0xff83b, 0xff83b) AM_WRITE(msm5205_reset_w)
729737   AM_RANGE(0xff83c, 0xff83c) AM_WRITE(backupram_enable_w)
730738
731739   AM_RANGE(0xffc00, 0xfffff) AM_RAM // Internal RAM
r243488r243489
733741
734742/* Ports */
735743
736READ8_MEMBER(mastboy_state::mastboy_port_38_read)
744READ8_MEMBER(mastboy_state::port_38_read)
737745{
738746   return 0x00;
739747}
740748
741READ8_MEMBER(mastboy_state::mastboy_nmi_read)
749READ8_MEMBER(mastboy_state::nmi_read)
742750{
743751   // this is read in the NMI, it's related to the Z180 MMU I think, must return right value or game jumps to 0000
744752   return 0x00;
745753}
746754
747755static ADDRESS_MAP_START( mastboy_io_map, AS_IO, 8, mastboy_state )
748   AM_RANGE(0x38, 0x38) AM_READ(mastboy_port_38_read)
749   AM_RANGE(0x39, 0x39) AM_READ(mastboy_nmi_read)
756   AM_RANGE(0x38, 0x38) AM_READ(port_38_read)
757   AM_RANGE(0x39, 0x39) AM_READ(nmi_read)
750758ADDRESS_MAP_END
751759
752760/* Input Ports */
r243488r243489
866874
867875/* Machine Functions / Driver */
868876
877void mastboy_state::machine_start()
878{
879   m_vram = memregion( "gfx1" )->base(); // makes decoding the RAM based tiles easier this way
880   
881   save_item(NAME(m_bank));
882   save_item(NAME(m_irq0_ack));
883   save_item(NAME(m_backupram_enabled));
884   save_item(NAME(m_m5205_next));
885   save_item(NAME(m_m5205_part));
886   save_item(NAME(m_m5205_sambit0));
887   save_item(NAME(m_m5205_sambit1));
888}
889
869890void mastboy_state::machine_reset()
870891{
871892   /* clear some ram */
r243488r243489
885906   MCFG_CPU_ADD("maincpu", Z180, 12000000/2)   /* HD647180X0CP6-1M1R */
886907   MCFG_CPU_PROGRAM_MAP(mastboy_map)
887908   MCFG_CPU_IO_MAP(mastboy_io_map)
888   MCFG_CPU_VBLANK_INT_DRIVER("screen", mastboy_state,  mastboy_interrupt)
909   MCFG_CPU_VBLANK_INT_DRIVER("screen", mastboy_state,  interrupt)
889910
890911   MCFG_NVRAM_ADD_1FILL("nvram")
891912
r243488r243489
896917   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
897918   MCFG_SCREEN_SIZE(256, 256)
898919   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
899   MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy)
920   MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update)
900921   MCFG_SCREEN_PALETTE("palette")
901922
902923   MCFG_GFXDECODE_ADD("gfxdecode", "palette", mastboy)
r243488r243489
909930   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
910931
911932   MCFG_SOUND_ADD("msm", MSM5205, 384000)
912   MCFG_MSM5205_VCLK_CB(WRITELINE(mastboy_state, mastboy_adpcm_int))  /* interrupt function */
933   MCFG_MSM5205_VCLK_CB(WRITELINE(mastboy_state, adpcm_int))  /* interrupt function */
913934   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B)      /* 4KHz 4-bit */
914935   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
915936MACHINE_CONFIG_END
r243488r243489
9931014   /*                  0x1c0000 to 0x1fffff EMPTY */
9941015ROM_END
9951016
996DRIVER_INIT_MEMBER(mastboy_state,mastboy)
997{
998   m_vram = memregion( "gfx1" )->base(); // makes decoding the RAM based tiles easier this way
999}
10001017
1001GAME( 1991, mastboy,  0,          mastboy, mastboy, mastboy_state, mastboy, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", 0 )
1002GAME( 1991, mastboyi, mastboy,    mastboy, mastboy, mastboy_state, mastboy, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A)", 0 )
1018GAME( 1991, mastboy,  0,          mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", GAME_SUPPORTS_SAVE )
1019GAME( 1991, mastboyi, mastboy,    mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/mcr.c
r243488r243489
26992699   ROM_LOAD( "nflvidfg.cp7", 0x0a000, 0x2000, CRC(73f62392) SHA1(18f28be7264f8edff38f8a6aa067eeb1970f544c) )
27002700   ROM_LOAD( "nflvidfg.c10", 0x0c000, 0x2000, CRC(1766dcc7) SHA1(df499e3c66ae702d2d56e6cd095a754665569fcd) )
27012701   ROM_LOAD( "nflvidfg.cp9", 0x0e000, 0x2000, CRC(46558146) SHA1(4bedfae8cf0fcb9d837706ee13fbe3944ab47216) )
2702   
2703   DISK_REGION( "ced_videodisc" )
2704        DISK_IMAGE_READONLY( "nflfoot", 0, NO_DUMP )
27022705ROM_END
27032706
27042707
trunk/src/mame/drivers/mpu4vid.c
r243488r243489
12831283   AM_RANGE(0x000000, 0x7fffff) AM_ROM
12841284   AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("vid_mainram")
12851285//  AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
1286   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
1287   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
1286   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
1287   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
12881288   AM_RANGE(0xa00000, 0xa00003) AM_READWRITE8(ef9369_r, ef9369_w,0x00ff)
12891289/*  AM_RANGE(0xa00004, 0xa0000f) AM_READWRITE(mpu4_vid_unmap_r, mpu4_vid_unmap_w) */
12901290
r243488r243489
13031303   AM_RANGE(0x600000, 0x63ffff) AM_RAM /* The Mating Game has an extra 256kB RAM on the program card */
13041304//  AM_RANGE(0x640000, 0x7fffff) AM_NOP /* Possible bug, reads and writes here */
13051305   AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("vid_mainram")
1306   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
1307   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
1306   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
1307   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
13081308   AM_RANGE(0xa00000, 0xa00003) AM_READWRITE8(ef9369_r, ef9369_w,0x00ff)
13091309
13101310   AM_RANGE(0xb00000, 0xb0000f) AM_DEVREADWRITE8("scn2674_vid", scn2674_device, mpu4_vid_scn2674_r, mpu4_vid_scn2674_w,0x00ff)
r243488r243489
13251325   AM_RANGE(0x000000, 0x7fffff) AM_ROM
13261326   AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("vid_mainram")
13271327   AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
1328   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
1329   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
1328   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
1329   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
13301330   AM_RANGE(0xa00000, 0xa00003) AM_READWRITE8(ef9369_r, ef9369_w,0x00ff)
13311331//  AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(bt471_r,bt471_w) //Some games use this
13321332/*  AM_RANGE(0xa00004, 0xa0000f) AM_READWRITE(mpu4_vid_unmap_r, mpu4_vid_unmap_w) */
r243488r243489
13431343   AM_RANGE(0x000000, 0x7fffff) AM_ROM
13441344   AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("vid_mainram")
13451345   AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
1346   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
1347   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
1346   AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
1347   AM_RANGE(0x900002, 0x900003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
13481348   AM_RANGE(0xa00000, 0xa00003) AM_READWRITE8(ef9369_r, ef9369_w,0x00ff)
13491349   //AM_RANGE(0xa00000, 0xa00003) AM_READWRITE8(bt471_r,bt471_w,0x00ff) Some games use this
13501350/*  AM_RANGE(0xa00004, 0xa0000f) AM_READWRITE(mpu4_vid_unmap_r, mpu4_vid_unmap_w) */
trunk/src/mame/drivers/namcops2.c
r243488r243489
563563   DISK_IMAGE_READONLY( "wmn1", 0, SHA1(4254e987e71d0d4038a87f11dc1a304396b3dffc) )
564564ROM_END
565565
566ROM_START( vnight )
567   ROM_REGION(0x200000, "bios", 0)
568   SYSTEM246_BIOS
569
570   ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
571   ROM_LOAD( "vpn3verb.ic002", 0x000000, 0x800000, CRC(d0011dc6) SHA1(d01a418b4b83057708e8f0ac4b271112b4a24d15) )
572   ROM_LOAD( "vpn3verb_spr.ic002", 0x800000, 0x040000, CRC(41169c24) SHA1(40bffbe93da65fe5512be9f80254b034a071c38b) )
573
574   DISK_REGION("dvd")   // actually single-track CD-ROM
575   DISK_IMAGE_READONLY( "vpn1cd0", 0, SHA1(714bd19eee3b31a060223003e4567e405ce04cd7) )
576ROM_END
577
566578ROM_START( bldyr3b )
567579   ROM_REGION(0x200000, "bios", 0)
568580   SYSTEM246_BIOS
r243488r243489
658670
659671// System 246
660672GAME(2001, sys246,          0, system246, system246, driver_device, 0, ROT0, "Namco", "System 246 BIOS", GAME_IS_SKELETON|GAME_IS_BIOS_ROOT)
673GAME(2001, vnight,     sys246, system246, system246, driver_device, 0, ROT0, "Sega / Namco", "Vampire Night (VPN3 Ver. B)", GAME_IS_SKELETON)
661674GAME(2001, bldyr3b,    sys246, system246, system246, driver_device, 0, ROT0, "bootleg", "Bloody Roar 3 (bootleg)", GAME_IS_SKELETON)
662675GAME(2001, rrvac,      sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV3 Ver. A)", GAME_IS_SKELETON)
663676GAME(2001, rrvac2,      rrvac, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV2 Ver. A)", GAME_IS_SKELETON)
trunk/src/mame/drivers/nwk-tr.c
r243488r243489
4848SOIC8 chip (a secured PIC?) is not populated (the solder pads are there though).
4949There's an extra sound IC AN7395S (it's not populated on Hornet).
5050The PALs/PLDs are the same on NWK-TR and Hornet.
51Both Racing JAM/Chapter 2 and Thrill Drive use two video boards.
52The top video board is set to MASTER/TWIN, lower video board is set to SLAVE
53They are otherwise identical.
5154
5255
53Top Board
56Top Board (CPU PCB)
5457GN676 PWB(A)B
5558Konami 1997
5659|--------------------------------------------------------------|
r243488r243489
8891     DRM1M4SJ8 - Fujitsu 81C4256 256kx4 DRAM (SOJ24)
8992      SRAM256K - Cypress CY7C199 32kx8 SRAM (SOJ28)
9093     DRAM16X16 - Fujitsu 8118160A-60 16megx16 DRAM (SOJ42)
91   M48T58Y-70PC1 - ST Timekeeper RAM
94      M48T58Y-70PC1 - ST Timekeeper RAM
9295       RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.9344MHz
9396        056800 - Konami Custom (QFP80)
9497        058232 - Konami Custom Ceramic Package (SIL14)
r243488r243489
127130           CN6 - DIN96 joining connector to lower PCB
128131           CN7 - Multi-pin connector (pads only, not used)
129132   CN9 to CN13 - Power Connectors
130   CN14 to CN17 - RCA Stereo Audio OUT
133       CN14 to CN17 - RCA Stereo Audio OUT
131134          CN18 - RCA Mono Audio OUT
132135          CN19 - USB Connector
133136
134137
135138ROM Usage
136139---------
137            |------------------------------- ROM Locations -------------------------------------|
140         |------------------------------- ROM Locations -------------------------------------|
138141Game         27P     25P  22P   16P     14P     12P     9P      16T     14T     12T     9T  7S
139142--------------------------------------------------------------------------------------------------
140143Racing Jam   676NC01 -    -     676A09  676A10  -       -       676A04  676A05  -       -   676A08
r243488r243489
142145Thrill Drive 713BE01 -    -     713A09  713A10  -       -       713A04  713A05  -       -   713A08
143146
144147
145Bottom Board
148Network PCB
149-----------
150GN676-PWB(H)B
151MADE IN JAPAN
152(C)1998 KONAMI
153sticker - GC713AC
154|------------------------|
155|  CY7C199       N676H1  |
156|                      2G|
157|CN3                     |
158|  HYC2485S              |
159|   XC5204        XC5210 |
160|CN2                     |
161|         CN1            |
162|------------------------|
163Notes:
164      CN1      - Connector joining to CPU board CN4
165      CN2/3    - RCA jacks for network cable
166      2G       - Small SOIC8 chip with number 0038323 at location 2G. An identical chip is present on
167                 *some* Hornet games on the GN715 CPU board at location 30C. It may be a PIC or EEPROM.
168                 On Hornet, the chip seems to refresh the data in the Timekeeper RAM when the battery
169                 dies and keeps the game working. It's purpose on the network board is unknown but it may
170                 'upgrade' the data in the NVRAM to the network version of the game for a twin cabinet set-up.
171      HYC2485S - Hybrid ceramic module for RS485
172      CY7C199  - 32k x8 SRAM
173      XC5204   - Xilinx XC5204 FPGA
174      XC5210   - Xilink XC5210 FPGA
175      N676H1   - PALCE16V8Q-15 stamped 'N676H1'
176
177     
178Bottom Board (VIDEO PCB)
146179GN676 PWB(B)B
147180|-------------------------------------------------------------------------------------------|
148181|CN4          CN2      CN8               CN6                                             CN5|
r243488r243489
182215    TEXELFX - 3DFX 500-0004-02 BD0665.1 TMU (QFP208)
183216    PIXELFX - 3DFX 500-0003-03 F001701.1 FBI (QFP240)
184217     001604 - Konami Custom (QFP208)
185   MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44)
218       MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44)
186219    MACH111 - AMD MACH111 CPLD (Stamped '03161A', PLCC44)
187PLCC44_SOCKET- empty PLCC44 socket
220   PLCC44_SOCKET - empty PLCC44 socket
188221     AV9170 - Integrated Circuit Systems Inc. Clock Multiplier (SOIC8)
189222     AM7201 - AMD AM7201 FIFO (PLCC32)
190223       PAL1 - AMD PALCE16V8 (stamped 'N676B4', DIP20)
191224       PAL2 - AMD PALCE16V8 (stamped 'N676B5', DIP20)
192225       PAL3 - AMD PALCE16V8 (stamped 'N676B2', DIP20)
193        JP1 - SLV O O-O MST,TWN
194        JP2 - SLV O O-O MST
226        JP1 - SLV O O-O MST,TWN (sets board to MASTER TWIN or SLAVE)
227        JP2 - SLV O O-O MST (sets board to MASTER or SLAVE)
195228        CN1 - 96 Pin joining connector to upper PCB
196229        CN2 - 8-Pin 24kHz RGB OUT
197230        CN3 - 15-Pin DSUB VGA Video MAIN OUT
r243488r243489
203236
204237ROM Usage
205238---------
206            |------ ROM Locations -------|
239         |------ ROM Locations -------|
207240Game         8X      8Y      16X     16Y
208241-------------------------------------------
209242Racing Jam   676A13  -       676A14  -
trunk/src/mame/drivers/quizpani.c
r243488r243489
5858   AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2")
5959   AM_RANGE(0x100014, 0x100015) AM_WRITENOP /* screen flipping? */
6060   AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable? */
61   AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w)
61   AM_RANGE(0x100018, 0x100019) AM_WRITE(tilesbank_w)
6262   AM_RANGE(0x104000, 0x104001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
6363   AM_RANGE(0x104020, 0x104027) AM_DEVWRITE8("nmk112", nmk112_device, okibank_w, 0x00ff)
6464   AM_RANGE(0x108000, 0x1083ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
6565   AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP
6666   AM_RANGE(0x10c000, 0x10c007) AM_RAM AM_SHARE("scrollreg")
6767   AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP
68   AM_RANGE(0x110000, 0x113fff) AM_RAM_WRITE(quizpani_bg_videoram_w) AM_SHARE("bg_videoram")
69   AM_RANGE(0x11c000, 0x11ffff) AM_RAM_WRITE(quizpani_txt_videoram_w) AM_SHARE("txt_videoram")
68   AM_RANGE(0x110000, 0x113fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram")
69   AM_RANGE(0x11c000, 0x11ffff) AM_RAM_WRITE(txt_videoram_w) AM_SHARE("txt_videoram")
7070   AM_RANGE(0x180000, 0x18ffff) AM_RAM
7171   AM_RANGE(0x200000, 0x33ffff) AM_ROM
7272ADDRESS_MAP_END
r243488r243489
202202   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
203203   MCFG_SCREEN_SIZE(64*8, 32*8)
204204   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
205   MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update_quizpani)
205   MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update)
206206   MCFG_SCREEN_PALETTE("palette")
207207
208208
r243488r243489
242242   ROM_LOAD( "qz8.121", 0x200, 0x100, CRC(b4c19741) SHA1(a6d3686bad6ef2336463b89bc2d249003d9b4bcc) ) /* unknown */
243243ROM_END
244244
245GAME( 1993, quizpani, 0, quizpani, quizpani, driver_device, 0, ROT0, "NMK", "Quiz Panicuru Fantasy", 0 )
245GAME( 1993, quizpani, 0, quizpani, quizpani, driver_device, 0, ROT0, "NMK", "Quiz Panicuru Fantasy", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/statriv2.c
r243488r243489
977977   ROM_LOAD( "prom.u17", 0x0000, 0x0020, NO_DUMP ) /* Socketted */
978978   ROM_LOAD( "prom.u21", 0x0020, 0x0020, NO_DUMP ) /* Soldered in (Color?) */
979979   ROM_LOAD( "prom.u22", 0x0040, 0x0100, NO_DUMP ) /* Soldered in */
980   
981   DISK_REGION( "laserdisc")
982   DISK_IMAGE_READONLY("cstripxi", 0, NO_DUMP )
980983ROM_END
981984
982985
trunk/src/mame/drivers/vamphalf.c
r243488r243489
163163   DECLARE_WRITE32_MEMBER(wyvernwg_snd_w);
164164   DECLARE_WRITE16_MEMBER(misncrft_snd_w);
165165
166   DECLARE_READ32_MEMBER(yorizori_1c_r);
167   DECLARE_WRITE32_MEMBER(yorizori_1c_w);
168   DECLARE_READ32_MEMBER(yorizori_10_r);
166   DECLARE_READ32_MEMBER(yorijori_1c_r);
167   DECLARE_WRITE32_MEMBER(yorijori_1c_w);
168   DECLARE_READ32_MEMBER(yorijori_10_r);
169169
170170   DECLARE_READ8_MEMBER(qs1000_p1_r);
171171   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
r243488r243489
187187   DECLARE_DRIVER_INIT(misncrft);
188188   DECLARE_DRIVER_INIT(boonggab);
189189   DECLARE_DRIVER_INIT(wyvernwg);
190   DECLARE_DRIVER_INIT(yorizori);
190   DECLARE_DRIVER_INIT(yorijori);
191191   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
192192   UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
193193   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap);
r243488r243489
377377   }
378378}
379379
380READ32_MEMBER(vamphalf_state::yorizori_10_r)
380READ32_MEMBER(vamphalf_state::yorijori_10_r)
381381{
382   printf("yorizori_10_r %08x\n", space.device().safe_pc());
382   printf("yorijori_10_r %08x\n", space.device().safe_pc());
383383   return 0xffffffff;
384384}
385READ32_MEMBER(vamphalf_state::yorizori_1c_r)
385READ32_MEMBER(vamphalf_state::yorijori_1c_r)
386386{
387//  printf("yorizori_1c_r %08x\n", space.device().safe_pc());
387//  printf("yorijori_1c_r %08x\n", space.device().safe_pc());
388388   return 0x00;// 0xaa;
389389}
390WRITE32_MEMBER(vamphalf_state::yorizori_1c_w)
390WRITE32_MEMBER(vamphalf_state::yorijori_1c_w)
391391{
392//  printf("yorizori_1c_w %08x %08x\n", space.device().safe_pc(), data);
392//  printf("yorijori_1c_w %08x %08x\n", space.device().safe_pc(), data);
393393}
394394
395395WRITE32_MEMBER( vamphalf_state::wyvernwg_snd_w )
r243488r243489
434434   AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
435435ADDRESS_MAP_END
436436
437static ADDRESS_MAP_START( yorizori_32bit_map, AS_PROGRAM, 32, vamphalf_state )
437static ADDRESS_MAP_START( yorijori_32bit_map, AS_PROGRAM, 32, vamphalf_state )
438438   AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32")
439439   AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles32")
440440   AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
r243488r243489
584584ADDRESS_MAP_END
585585
586586
587static ADDRESS_MAP_START( yorizori_io, AS_IO, 32, vamphalf_state )
588   AM_RANGE(0x010, 0x013) AM_READ(yorizori_10_r)
589   AM_RANGE(0x01c, 0x01f) AM_READWRITE(yorizori_1c_r,yorizori_1c_w)
587static ADDRESS_MAP_START( yorijori_io, AS_IO, 32, vamphalf_state )
588   AM_RANGE(0x010, 0x013) AM_READ(yorijori_10_r)
589   AM_RANGE(0x01c, 0x01f) AM_READWRITE(yorijori_1c_r,yorijori_1c_w)
590590ADDRESS_MAP_END
591591
592592/*
r243488r243489
11601160   MCFG_FRAGMENT_ADD(sound_ym_oki)
11611161MACHINE_CONFIG_END
11621162
1163static MACHINE_CONFIG_DERIVED( yorizori, common )
1163static MACHINE_CONFIG_DERIVED( yorijori, common )
11641164   MCFG_CPU_REPLACE("maincpu", E132T, XTAL_50MHz)    /* 50 MHz */
1165   MCFG_CPU_PROGRAM_MAP(yorizori_32bit_map)
1166   MCFG_CPU_IO_MAP(yorizori_io)
1165   MCFG_CPU_PROGRAM_MAP(yorijori_32bit_map)
1166   MCFG_CPU_IO_MAP(yorijori_io)
11671167   MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state,  irq1_line_hold)
11681168
11691169   MCFG_FRAGMENT_ADD(sound_qs1000)
r243488r243489
20012001
20022002/*
20032003
2004Yori Zori Kuk Kuk
2004Yori Jori Kuk Kuk
20052005
20062006
20072007PCB Layout
r243488r243489
20732073
20742074*/
20752075
2076ROM_START( yorizori )
2076ROM_START( yorijori )
20772077   ROM_REGION32_BE( 0x200000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
20782078   ROM_LOAD( "prg1", 0x000000, 0x200000, CRC(0e04eb40) SHA1(0cec9dc91aaf9cf7c459c7baac200cf0fcfddc18) )
20792079
r243488r243489
27622762   membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
27632763}
27642764
2765DRIVER_INIT_MEMBER(vamphalf_state,yorizori)
2765DRIVER_INIT_MEMBER(vamphalf_state,yorijori)
27662766{
27672767   // seesm close to Final Godori in terms of port mappings, possibly a SemiCom game?
27682768
r243488r243489
28952895GAME( 2001, wyvernwga, wivernwg, wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_IMPERFECT_SOUND )
28962896GAME( 2001, aoh,       0,        aoh,      aoh,      vamphalf_state, aoh,      ROT0,   "Unico",             "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", 0 )
28972897GAME( 2001, boonggab,  0,        boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System",       "Boong-Ga Boong-Ga (Spank'em!)", 0 )
2898GAME( 199?, yorizori,  0,        yorizori, common,   vamphalf_state, yorizori, ROT0,   "<unknown>",         "Yori Zori Kuk Kuk", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
2898GAME( 199?, yorijori,  0,        yorijori, common,   vamphalf_state, yorijori, ROT0,   "Golden Bell Entertainment",         "Yori Jori Kuk Kuk", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
trunk/src/mame/drivers/wrally.c
r243488r243489
103103
104104static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16, wrally_state )
105105   AM_RANGE(0x000000, 0x0fffff) AM_ROM                                                         /* ROM */
106   AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(wrally_vram_w) AM_SHARE("videoram")   /* encrypted Video RAM */
106   AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(vram_w) AM_SHARE("videoram")   /* encrypted Video RAM */
107107   AM_RANGE(0x108000, 0x108007) AM_RAM AM_SHARE("vregs")                                   /* Video Registers */
108108   AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP                                                /* CLR INT Video */
109109   AM_RANGE(0x200000, 0x203fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")    /* Palette */
r243488r243489
112112   AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2")
113113   AM_RANGE(0x700004, 0x700005) AM_READ_PORT("WHEEL")
114114   AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM")
115   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w)                                /* OKI6295 bankswitch */
115   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(okim6295_bankswitch_w)                                /* OKI6295 bankswitch */
116116   AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)  /* OKI6295 status/data register */
117117   AM_RANGE(0x70000a, 0x70001b) AM_WRITE(wrally_coin_lockout_w)                                /* Coin lockouts */
118118   AM_RANGE(0x70002a, 0x70003b) AM_WRITE(wrally_coin_counter_w)                                /* Coin counters */
119119   AM_RANGE(0x70004a, 0x70004b) AM_WRITENOP                                                /* Sound muting */
120   AM_RANGE(0x70005a, 0x70005b) AM_WRITE(wrally_flipscreen_w)                                  /* Flip screen */
120   AM_RANGE(0x70005a, 0x70005b) AM_WRITE(flipscreen_w)                                  /* Flip screen */
121121   AM_RANGE(0x70006a, 0x70007b) AM_WRITENOP                                                /* ??? */
122122   AM_RANGE(0xfec000, 0xfeffff) AM_RAM AM_SHARE("shareram")                                        /* Work RAM (shared with DS5002FP) */
123123ADDRESS_MAP_END
r243488r243489
255255   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
256256   MCFG_SCREEN_SIZE(64*16, 32*16)
257257   MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1)
258   MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally)
258   MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update)
259259   MCFG_SCREEN_PALETTE("palette")
260260
261261   MCFG_GFXDECODE_ADD("gfxdecode", "palette", wrally)
r243488r243489
352352ROM_END
353353
354354
355GAME( 1993, wrally,  0,      wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 1)", 0 ) /* Dallas DS5002FP power failure shows as: "Tension  baja " */
356GAME( 1993, wrallya, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 2)", 0 ) /* Dallas DS5002FP power failure shows as: "Power  Failure" */
357GAME( 1993, wrallyb, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", 0 )
355GAME( 1993, wrally,  0,      wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 1)", GAME_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Tension  baja " */
356GAME( 1993, wrallya, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 2)", GAME_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Power  Failure" */
357GAME( 1993, wrallyb, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/xorworld.c
r243488r243489
6262   m_eeprom->di_write(data & 0x01);
6363}
6464
65WRITE16_MEMBER(xorworld_state::xorworld_irq2_ack_w)
65WRITE16_MEMBER(xorworld_state::irq2_ack_w)
6666{
6767   m_maincpu->set_input_line(2, CLEAR_LINE);
6868}
6969
70WRITE16_MEMBER(xorworld_state::xorworld_irq6_ack_w)
70WRITE16_MEMBER(xorworld_state::irq6_ack_w)
7171{
7272   m_maincpu->set_input_line(6, CLEAR_LINE);
7373}
r243488r243489
7777   AM_RANGE(0x200000, 0x200001) AM_READ_PORT("P1")
7878   AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P2")
7979   AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW")
80   AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8("saa", saa1099_device, saa1099_data_w, 0x00ff)
81   AM_RANGE(0x800002, 0x800003) AM_DEVWRITE8("saa", saa1099_device, saa1099_control_w, 0x00ff)
80   AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff)
81   AM_RANGE(0x800002, 0x800003) AM_DEVWRITE8("saa", saa1099_device, control_w, 0x00ff)
8282   AM_RANGE(0xa00008, 0xa00009) AM_WRITE(eeprom_chip_select_w)
8383   AM_RANGE(0xa0000a, 0xa0000b) AM_WRITE(eeprom_serial_clock_w)
8484   AM_RANGE(0xa0000c, 0xa0000d) AM_WRITE(eeprom_data_w)
85   AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(xorworld_videoram16_w) AM_SHARE("videoram")
85   AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
8686   AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_SHARE("spriteram")
87   AM_RANGE(0xffc880, 0xffc881) AM_WRITE(xorworld_irq2_ack_w)
88   AM_RANGE(0xffc882, 0xffc883) AM_WRITE(xorworld_irq6_ack_w)
87   AM_RANGE(0xffc880, 0xffc881) AM_WRITE(irq2_ack_w)
88   AM_RANGE(0xffc882, 0xffc883) AM_WRITE(irq6_ack_w)
8989   AM_RANGE(0xffc884, 0xffffff) AM_RAM
9090ADDRESS_MAP_END
9191
r243488r243489
182182   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
183183   MCFG_SCREEN_SIZE(32*8, 32*8)
184184   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
185   MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld)
185   MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update)
186186   MCFG_SCREEN_PALETTE("palette")
187187
188188   MCFG_GFXDECODE_ADD("gfxdecode", "palette", xorworld)
r243488r243489
235235}
236236
237237
238GAME( 1990, xorworld, 0, xorworld, xorworld, xorworld_state, xorworld, ROT0, "Gaelco", "Xor World (prototype)", 0 )
238GAME( 1990, xorworld, 0, xorworld, xorworld, xorworld_state, xorworld, ROT0, "Gaelco", "Xor World (prototype)", GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/gladiatr.h
r243488r243489
55public:
66   gladiatr_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
8         m_nvram(*this, "nvram") ,
9      m_spriteram(*this, "spriteram"),
10      m_videoram(*this, "videoram"),
11      m_colorram(*this, "colorram"),
12      m_textram(*this, "textram"),
138      m_maincpu(*this, "maincpu"),
149      m_audiocpu(*this, "audiocpu"),
1510      m_subcpu(*this, "sub"),
1611      m_msm(*this, "msm"),
1712      m_gfxdecode(*this, "gfxdecode"),
1813      m_palette(*this, "palette"),
19      m_generic_paletteram_8(*this, "paletteram") { }
14      m_nvram(*this, "nvram") ,
15      m_spriteram(*this, "spriteram"),
16      m_videoram(*this, "videoram"),
17      m_colorram(*this, "colorram"),
18      m_textram(*this, "textram"),
19      m_generic_paletteram_8(*this, "paletteram")   { }
20   
21   required_device<cpu_device> m_maincpu;
22   required_device<cpu_device> m_audiocpu;
23   required_device<cpu_device> m_subcpu;
24   required_device<msm5205_device> m_msm;
25   required_device<gfxdecode_device> m_gfxdecode;
26   required_device<palette_device> m_palette;
2027
21   required_shared_ptr<UINT8> m_nvram;
28   required_shared_ptr<UINT8> m_nvram;
2229   required_shared_ptr<UINT8> m_spriteram;
2330   required_shared_ptr<UINT8> m_videoram;
2431   required_shared_ptr<UINT8> m_colorram;
2532   required_shared_ptr<UINT8> m_textram;
33   required_shared_ptr<UINT8> m_generic_paletteram_8;
2634
2735   int m_data1;
2836   int m_data2;
r243488r243489
4048   int m_fg_tile_bank;
4149   int m_bg_tile_bank;
4250
51   // common
52   DECLARE_WRITE8_MEMBER(videoram_w);
53   DECLARE_WRITE8_MEMBER(colorram_w);
54   DECLARE_WRITE8_MEMBER(textram_w);
55   DECLARE_WRITE8_MEMBER(paletteram_w);
56   DECLARE_WRITE8_MEMBER(spritebuffer_w);
4357
44   DECLARE_READ8_MEMBER( gladiator_dsw1_r );
45   DECLARE_READ8_MEMBER( gladiator_dsw2_r );
46   DECLARE_READ8_MEMBER( gladiator_controls_r );
47   DECLARE_READ8_MEMBER( gladiator_button3_r );
48   DECLARE_WRITE8_MEMBER(gladiatr_videoram_w);
49   DECLARE_WRITE8_MEMBER(gladiatr_colorram_w);
50   DECLARE_WRITE8_MEMBER(gladiatr_textram_w);
51   DECLARE_WRITE8_MEMBER(gladiatr_paletteram_w);
52   DECLARE_WRITE8_MEMBER(gladiatr_spritebuffer_w);
58   // gladiator specific
59   DECLARE_READ8_MEMBER(gladiator_dsw1_r);
60   DECLARE_READ8_MEMBER(gladiator_dsw2_r);
61   DECLARE_READ8_MEMBER(gladiator_controls_r);
62   DECLARE_READ8_MEMBER(gladiator_button3_r);
5363   DECLARE_WRITE8_MEMBER(gladiatr_spritebank_w);
54   DECLARE_WRITE8_MEMBER(ppking_video_registers_w);
5564   DECLARE_WRITE8_MEMBER(gladiatr_video_registers_w);
5665   DECLARE_WRITE8_MEMBER(gladiatr_bankswitch_w);
57   DECLARE_WRITE8_MEMBER(glad_cpu_sound_command_w);
58   DECLARE_READ8_MEMBER(glad_cpu_sound_command_r);
66   DECLARE_WRITE8_MEMBER(gladiator_cpu_sound_command_w);
67   DECLARE_READ8_MEMBER(gladiator_cpu_sound_command_r);
5968   DECLARE_WRITE8_MEMBER(gladiatr_flipscreen_w);
6069   DECLARE_WRITE8_MEMBER(gladiatr_irq_patch_w);
61   DECLARE_WRITE8_MEMBER(qx0_w);
62   DECLARE_WRITE8_MEMBER(qx1_w);
63   DECLARE_WRITE8_MEMBER(qx2_w);
64   DECLARE_WRITE8_MEMBER(qx3_w);
65   DECLARE_READ8_MEMBER(qx2_r);
66   DECLARE_READ8_MEMBER(qx3_r);
67   DECLARE_READ8_MEMBER(qx0_r);
68   DECLARE_READ8_MEMBER(qx1_r);
69   DECLARE_READ8_MEMBER(f6a3_r);
7070   DECLARE_WRITE8_MEMBER(gladiator_int_control_w);
71   DECLARE_WRITE8_MEMBER(glad_adpcm_w);
72   DECLARE_READ8_MEMBER(f1_r);
71   DECLARE_WRITE8_MEMBER(gladiator_adpcm_w);
72   DECLARE_WRITE_LINE_MEMBER(gladiator_ym_irq);
73   
74   // ppking specific
75   DECLARE_READ8_MEMBER(ppking_f1_r);
76   DECLARE_READ8_MEMBER(ppking_f6a3_r);
77   DECLARE_WRITE8_MEMBER(ppking_qx0_w);
78   DECLARE_WRITE8_MEMBER(ppking_qx1_w);
79   DECLARE_WRITE8_MEMBER(ppking_qx2_w);
80   DECLARE_WRITE8_MEMBER(ppking_qx3_w);
81   DECLARE_READ8_MEMBER(ppking_qx2_r);
82   DECLARE_READ8_MEMBER(ppking_qx3_r);
83   DECLARE_READ8_MEMBER(ppking_qx0_r);
84   DECLARE_READ8_MEMBER(ppking_qx1_r);
85   DECLARE_WRITE8_MEMBER(ppking_video_registers_w);
86   
7387   DECLARE_DRIVER_INIT(gladiatr);
7488   DECLARE_DRIVER_INIT(ppking);
89   
7590   TILE_GET_INFO_MEMBER(bg_get_tile_info);
7691   TILE_GET_INFO_MEMBER(fg_get_tile_info);
92
7793   DECLARE_MACHINE_RESET(ppking);
7894   DECLARE_VIDEO_START(ppking);
7995   DECLARE_MACHINE_RESET(gladiator);
8096   DECLARE_VIDEO_START(gladiatr);
97   
8198   UINT32 screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8299   UINT32 screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83100   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
84101   void swap_block(UINT8 *src1,UINT8 *src2,int len);
85   DECLARE_WRITE_LINE_MEMBER(gladiator_ym_irq);
86   required_device<cpu_device> m_maincpu;
87   required_device<cpu_device> m_audiocpu;
88   required_device<cpu_device> m_subcpu;
89   required_device<msm5205_device> m_msm;
90   required_device<gfxdecode_device> m_gfxdecode;
91   required_device<palette_device> m_palette;
92   required_shared_ptr<UINT8> m_generic_paletteram_8;
93102};
trunk/src/mame/includes/gsword.h
r243488r243489
1#include "sound/ay8910.h"
12#include "sound/msm5205.h"
23
34class gsword_state : public driver_device
r243488r243489
56public:
67   gsword_state(const machine_config &mconfig, device_type type, const char *tag)
78      : driver_device(mconfig, type, tag),
8      m_spritetile_ram(*this, "spritetile_ram"),
9      m_spritexy_ram(*this, "spritexy_ram"),
10      m_spriteattrib_ram(*this, "spriteattram"),
11      m_videoram(*this, "videoram"),
12      m_cpu2_ram(*this, "cpu2_ram"),
139      m_maincpu(*this, "maincpu"),
1410      m_audiocpu(*this, "audiocpu"),
1511      m_subcpu(*this, "sub"),
12      m_ay0(*this, "ay1"),
13      m_ay1(*this, "ay2"),
1614      m_msm(*this, "msm"),
1715      m_gfxdecode(*this, "gfxdecode"),
18      m_palette(*this, "palette") { }
16      m_palette(*this, "palette"),
17      m_spritetile_ram(*this, "spritetile_ram"),
18      m_spritexy_ram(*this, "spritexy_ram"),
19      m_spriteattrib_ram(*this, "spriteattram"),
20      m_videoram(*this, "videoram"),
21      m_cpu2_ram(*this, "cpu2_ram") { }
1922
23   required_device<cpu_device> m_maincpu;
24   required_device<cpu_device> m_audiocpu;
25   optional_device<cpu_device> m_subcpu;
26   required_device<ay8910_device> m_ay0;
27   required_device<ay8910_device> m_ay1;
28   optional_device<msm5205_device> m_msm;
29   required_device<gfxdecode_device> m_gfxdecode;
30   required_device<palette_device> m_palette;
31
2032   required_shared_ptr<UINT8> m_spritetile_ram;
2133   required_shared_ptr<UINT8> m_spritexy_ram;
2234   required_shared_ptr<UINT8> m_spriteattrib_ram;
2335   required_shared_ptr<UINT8> m_videoram;
2436   required_shared_ptr<UINT8> m_cpu2_ram;
2537
26   int m_coins;
38   int m_coins; //currently initialized but not used
2739   int m_fake8910_0;
2840   int m_fake8910_1;
2941   int m_nmi_enable;
r243488r243489
3345   int m_flipscreen;
3446   tilemap_t *m_bg_tilemap;
3547
36   DECLARE_WRITE8_MEMBER(gsword_videoram_w);
37   DECLARE_WRITE8_MEMBER(gsword_charbank_w);
38   DECLARE_WRITE8_MEMBER(gsword_videoctrl_w);
39   DECLARE_WRITE8_MEMBER(gsword_scroll_w);
48   // common
49   DECLARE_WRITE8_MEMBER(videoram_w);
50   DECLARE_WRITE8_MEMBER(charbank_w);
51   DECLARE_WRITE8_MEMBER(videoctrl_w);
52   DECLARE_WRITE8_MEMBER(scroll_w);
53   DECLARE_WRITE8_MEMBER(adpcm_soundcommand_w);
54   DECLARE_WRITE8_MEMBER(nmi_set_w);
55   DECLARE_WRITE8_MEMBER(ay8910_control_port_0_w);
56   DECLARE_WRITE8_MEMBER(ay8910_control_port_1_w);
57   DECLARE_READ8_MEMBER(fake_0_r);
58   DECLARE_READ8_MEMBER(fake_1_r);
59   
60   // gsword specific
4061   DECLARE_READ8_MEMBER(gsword_hack_r);
41   DECLARE_WRITE8_MEMBER(adpcm_soundcommand_w);
42   DECLARE_WRITE8_MEMBER(gsword_nmi_set_w);
43   DECLARE_WRITE8_MEMBER(gsword_AY8910_control_port_0_w);
44   DECLARE_WRITE8_MEMBER(gsword_AY8910_control_port_1_w);
45   DECLARE_READ8_MEMBER(gsword_fake_0_r);
46   DECLARE_READ8_MEMBER(gsword_fake_1_r);
47   DECLARE_READ8_MEMBER( gsword_8741_2_r );
48   DECLARE_READ8_MEMBER( gsword_8741_3_r );
4962   DECLARE_WRITE8_MEMBER(gsword_adpcm_data_w);
63   DECLARE_READ8_MEMBER(gsword_8741_2_r);
64   DECLARE_READ8_MEMBER(gsword_8741_3_r);
65
66   TILE_GET_INFO_MEMBER(get_bg_tile_info);
67
5068   DECLARE_DRIVER_INIT(gsword);
5169   DECLARE_DRIVER_INIT(gsword2);
52   TILE_GET_INFO_MEMBER(get_bg_tile_info);
70   virtual void machine_start();
71   virtual void machine_reset();
5372   virtual void video_start();
54   DECLARE_MACHINE_RESET(gsword);
5573   DECLARE_PALETTE_INIT(gsword);
56   DECLARE_MACHINE_RESET(josvolly);
5774   DECLARE_PALETTE_INIT(josvolly);
75
5876   UINT32 screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5977   INTERRUPT_GEN_MEMBER(gsword_snd_interrupt);
6078   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
61   int gsword_coins_in(void);
62   required_device<cpu_device> m_maincpu;
63   required_device<cpu_device> m_audiocpu;
64   optional_device<cpu_device> m_subcpu;
65   optional_device<msm5205_device> m_msm;
66   required_device<gfxdecode_device> m_gfxdecode;
67   required_device<palette_device> m_palette;
79   int coins_in(void); //if 0'd
6880};
trunk/src/mame/includes/liberate.h
r243488r243489
2020   required_shared_ptr<UINT8> m_videoram;
2121   required_shared_ptr<UINT8> m_spriteram;
2222   optional_shared_ptr<UINT8> m_scratchram;
23     
24   UINT8 *m_fg_gfx;   /* prosoccr */
2325   UINT8 *m_charram;   /* prosoccr */
24
2526   UINT8 m_io_ram[16];
2627
2728   int m_bank;
trunk/src/mame/includes/quizpani.h
r243488r243489
66   quizpani_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
88      m_maincpu(*this, "maincpu"),
9      m_gfxdecode(*this, "gfxdecode"),
910      m_scrollreg(*this, "scrollreg"),
1011      m_bg_videoram(*this, "bg_videoram"),
11      m_txt_videoram(*this, "txt_videoram"),
12      m_gfxdecode(*this, "gfxdecode") { }
12      m_txt_videoram(*this, "txt_videoram") { }
1313
1414   required_device<cpu_device> m_maincpu;
15   required_device<gfxdecode_device> m_gfxdecode;
16   
1517   required_shared_ptr<UINT16> m_scrollreg;
1618   required_shared_ptr<UINT16> m_bg_videoram;
1719   required_shared_ptr<UINT16> m_txt_videoram;
18   required_device<gfxdecode_device> m_gfxdecode;
20   
1921   tilemap_t *m_bg_tilemap;
2022   tilemap_t *m_txt_tilemap;
2123   int m_bgbank;
2224   int m_txtbank;
23   DECLARE_WRITE16_MEMBER(quizpani_bg_videoram_w);
24   DECLARE_WRITE16_MEMBER(quizpani_txt_videoram_w);
25   DECLARE_WRITE16_MEMBER(quizpani_tilesbank_w);
25   
26   DECLARE_WRITE16_MEMBER(bg_videoram_w);
27   DECLARE_WRITE16_MEMBER(txt_videoram_w);
28   DECLARE_WRITE16_MEMBER(tilesbank_w);
29   
2630   TILEMAP_MAPPER_MEMBER(bg_scan);
2731   TILE_GET_INFO_MEMBER(bg_tile_info);
2832   TILE_GET_INFO_MEMBER(txt_tile_info);
33   
2934   virtual void video_start();
30   UINT32 screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
35   
36   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3137};
trunk/src/mame/includes/wrally.h
r243488r243489
33public:
44   wrally_state(const machine_config &mconfig, device_type type, const char *tag)
55      : driver_device(mconfig, type, tag),
6      m_maincpu(*this, "maincpu"),
7      m_gfxdecode(*this, "gfxdecode"),
8      m_palette(*this, "palette"),
69      m_videoram(*this, "videoram"),
710      m_vregs(*this, "vregs"),
811      m_spriteram(*this, "spriteram"),
9      m_shareram(*this, "shareram"),
10      m_maincpu(*this, "maincpu"),
11      m_gfxdecode(*this, "gfxdecode"),
12      m_palette(*this, "palette") { }
12      m_shareram(*this, "shareram") { }
1313
14   tilemap_t *m_pant[2];
14   required_device<cpu_device> m_maincpu;
15   required_device<gfxdecode_device> m_gfxdecode;
16   required_device<palette_device> m_palette;
17
1518   required_shared_ptr<UINT16> m_videoram;
1619   required_shared_ptr<UINT16> m_vregs;
1720   required_shared_ptr<UINT16> m_spriteram;
1821   required_shared_ptr<UINT16> m_shareram;
22   
23   tilemap_t *m_pant[2];
1924
2025   DECLARE_READ8_MEMBER(dallas_share_r);
2126   DECLARE_WRITE8_MEMBER(dallas_share_w);
22   DECLARE_WRITE16_MEMBER(wrally_vram_w);
23   DECLARE_WRITE16_MEMBER(wrally_flipscreen_w);
24   DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
27   DECLARE_WRITE16_MEMBER(vram_w);
28   DECLARE_WRITE16_MEMBER(flipscreen_w);
29   DECLARE_WRITE16_MEMBER(okim6295_bankswitch_w);
2530   DECLARE_WRITE16_MEMBER(wrally_coin_counter_w);
2631   DECLARE_WRITE16_MEMBER(wrally_coin_lockout_w);
27   TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0);
28   TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1);
32   
33   TILE_GET_INFO_MEMBER(get_tile_info_screen0);
34   TILE_GET_INFO_MEMBER(get_tile_info_screen1);
35   
2936   virtual void video_start();
30   UINT32 screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
37   
38   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3139   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority);
32   required_device<cpu_device> m_maincpu;
33   required_device<gfxdecode_device> m_gfxdecode;
34   required_device<palette_device> m_palette;
3540};
trunk/src/mame/includes/xorworld.h
r243488r243489
55public:
66   xorworld_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
8      m_videoram(*this, "videoram"),
9      m_spriteram(*this, "spriteram"),
108      m_maincpu(*this, "maincpu"),
119      m_eeprom(*this, "eeprom"),
1210      m_gfxdecode(*this, "gfxdecode"),
13      m_palette(*this, "palette") { }
11      m_palette(*this, "palette"),
12      m_videoram(*this, "videoram"),
13      m_spriteram(*this, "spriteram") { }
1414
15   required_device<cpu_device> m_maincpu;
16   required_device<eeprom_serial_93cxx_device> m_eeprom;
17   required_device<gfxdecode_device> m_gfxdecode;
18   required_device<palette_device> m_palette;
19   
1520   required_shared_ptr<UINT16> m_videoram;
21   required_shared_ptr<UINT16> m_spriteram;
22   
1623   tilemap_t *m_bg_tilemap;
17   required_shared_ptr<UINT16> m_spriteram;
18   DECLARE_WRITE16_MEMBER(xorworld_irq2_ack_w);
19   DECLARE_WRITE16_MEMBER(xorworld_irq6_ack_w);
20   DECLARE_WRITE16_MEMBER(xorworld_videoram16_w);
24   
25   DECLARE_WRITE16_MEMBER(irq2_ack_w);
26   DECLARE_WRITE16_MEMBER(irq6_ack_w);
27   DECLARE_WRITE16_MEMBER(videoram_w);
2128   DECLARE_WRITE16_MEMBER(eeprom_chip_select_w);
2229   DECLARE_WRITE16_MEMBER(eeprom_serial_clock_w);
2330   DECLARE_WRITE16_MEMBER(eeprom_data_w);
31   
32   TILE_GET_INFO_MEMBER(get_bg_tile_info);
33   
2434   DECLARE_DRIVER_INIT(xorworld);
25   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2635   virtual void video_start();
2736   DECLARE_PALETTE_INIT(xorworld);
28   UINT32 screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
37   
38   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2939   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
30   required_device<cpu_device> m_maincpu;
31   required_device<eeprom_serial_93cxx_device> m_eeprom;
32   required_device<gfxdecode_device> m_gfxdecode;
33   required_device<palette_device> m_palette;
3440};
trunk/src/mame/layout/superbug.lay
r243488r243489
33
44<!-- NOTE: highlight should be a bit star-shaped, not doable in MAME internal layout -->
55
6   <element name="highlight">
7      <disk>
8         <color red="1.0" green="1.0" blue="0.125" />
9      </disk>
10   </element>
6   <element name="highlight_explosion"><disk><color red="0.875" green="1.0" blue="0.125" /></disk></element>
7   <element name="static_green"><rect><color red="0.125" green="0.875" blue="0" /></rect></element>
118
9
1210   <view name="Color Overlay">
1311      <screen index="0">
1412         <bounds left="0" top="0" right="300" bottom="400" />
1513      </screen>
16      <overlay element="highlight">
17         <bounds x="117" y="167" width="66" height="66" />
18      </overlay>
14
15      <overlay element="highlight_explosion"><bounds x="117" y="167" width="66" height="66" /></overlay>
16
17      <overlay element="static_green"><bounds left="0" top="0" right="300" bottom="33" /></overlay>
18      <overlay element="static_green"><bounds left="0" top="367" right="300" bottom="400" /></overlay>
19
1920   </view>
2021</mamelayout>
trunk/src/mame/machine/tait8741.c
r243488r243489
250250   m_port_handler_1_r.resolve_safe(0);
251251   m_port_handler_2_r.resolve_safe(0);
252252   m_port_handler_3_r.resolve_safe(0);
253   
254   for (int i = 0; i < 4; i++)
255   {
256      save_item(NAME(m_taito8741[i].toData), i);
257      save_item(NAME(m_taito8741[i].fromData), i);
258      save_item(NAME(m_taito8741[i].fromCmd), i);
259      save_item(NAME(m_taito8741[i].status), i);
260      save_item(NAME(m_taito8741[i].phase), i);
261      save_item(NAME(m_taito8741[i].txd), i);
262      save_item(NAME(m_taito8741[i].rxd), i);
263      save_item(NAME(m_taito8741[i].parallelselect), i);
264      save_item(NAME(m_taito8741[i].txpoint), i);
265      //save_item(NAME(m_taito8741[i].pending4a), i); //currently initialized to 0, never changes
266      save_item(NAME(m_taito8741[i].serial_out), i);
267      //save_item(NAME(m_taito8741[i].coins), i); // currently initialized but otherwise unused
268   };
253269}
254270
255271/* read status port */
r243488r243489
344360   m_port_handler_1_r.resolve_safe(0);
345361   m_port_handler_2_r.resolve_safe(0);
346362   m_port_handler_3_r.resolve_safe(0);
363   
364   for (int i = 0; i < 4; i++)
365   {
366      save_item(NAME(m_i8741[i].cmd), i);
367      save_item(NAME(m_i8741[i].sts), i);
368      save_item(NAME(m_i8741[i].txd), i);
369      //save_item(NAME(m_i8741[i].outport), i); //currently initialized to 0xff, never changed
370      save_item(NAME(m_i8741[i].rxd), i);
371      save_item(NAME(m_i8741[i].rst), i);
372   };
373   
374   save_item(NAME(m_nmi_enable));
347375}
348376
349377
trunk/src/mame/machine/wrally.c
r243488r243489
1818
1919***************************************************************************/
2020
21WRITE16_MEMBER(wrally_state::wrally_vram_w)
21WRITE16_MEMBER(wrally_state::vram_w)
2222{
2323   data = gaelco_decrypt(space, offset, data, 0x1f, 0x522a);
2424   COMBINE_DATA(&m_videoram[offset]);
r243488r243489
2626   m_pant[(offset & 0x1fff) >> 12]->mark_tile_dirty(((offset << 1) & 0x1fff) >> 2);
2727}
2828
29WRITE16_MEMBER(wrally_state::wrally_flipscreen_w)
29WRITE16_MEMBER(wrally_state::flipscreen_w)
3030{
3131   flip_screen_set(data & 0x01);
3232}
3333
34WRITE16_MEMBER(wrally_state::OKIM6295_bankswitch_w)
34WRITE16_MEMBER(wrally_state::okim6295_bankswitch_w)
3535{
3636   UINT8 *RAM = memregion("oki")->base();
3737
trunk/src/mame/mame.lst
r243488r243489
10971097
10981098// Namco System 246
10991099sys246
1100vnight
11001101bldyr3b
11011102rrvac
11021103rrvac2
r243488r243489
1042910430misncrft        // (c) 2000 Sun
1043010431misncrfta       // (c) 2000 Sun
1043110432mrdig           // (c) 2000 Sun
10432yorizori        // (c)
10433yorijori        // (c)
1043310434
1043410435hidnctch        // (c) 1998 Eolith
1043510436linkypip        // (c) 1998 Eolith
trunk/src/mame/video/gladiatr.c
r243488r243489
5050   m_bg_tilemap->set_scroll_cols(0x10);
5151
5252   m_sprite_bank = 1;
53   
54   save_item(NAME(m_video_attributes));
55   save_item(NAME(m_fg_scrolly));
56   save_item(NAME(m_sprite_buffer));
57   save_item(NAME(m_fg_tile_bank));
5358}
5459
5560VIDEO_START_MEMBER(gladiatr_state,gladiatr)
r243488r243489
6368   m_fg_tilemap->set_scrolldx(-0x30, 0x12f);
6469
6570   m_sprite_bank = 2;
71   
72   save_item(NAME(m_video_attributes));
73   save_item(NAME(m_fg_scrollx));
74   save_item(NAME(m_fg_scrolly));
75   save_item(NAME(m_bg_scrollx));
76   save_item(NAME(m_bg_scrolly));
77   save_item(NAME(m_sprite_bank));
78   save_item(NAME(m_sprite_buffer));
79   save_item(NAME(m_fg_tile_bank));
80   save_item(NAME(m_bg_tile_bank));
6681}
6782
6883
r243488r243489
7388
7489***************************************************************************/
7590
76WRITE8_MEMBER(gladiatr_state::gladiatr_videoram_w)
91WRITE8_MEMBER(gladiatr_state::videoram_w)
7792{
7893   m_videoram[offset] = data;
7994   m_bg_tilemap->mark_tile_dirty(offset);
8095}
8196
82WRITE8_MEMBER(gladiatr_state::gladiatr_colorram_w)
97WRITE8_MEMBER(gladiatr_state::colorram_w)
8398{
8499   m_colorram[offset] = data;
85100   m_bg_tilemap->mark_tile_dirty(offset);
86101}
87102
88WRITE8_MEMBER(gladiatr_state::gladiatr_textram_w)
103WRITE8_MEMBER(gladiatr_state::textram_w)
89104{
90105   m_textram[offset] = data;
91106   m_fg_tilemap->mark_tile_dirty(offset);
92107}
93108
94WRITE8_MEMBER(gladiatr_state::gladiatr_paletteram_w)
109WRITE8_MEMBER(gladiatr_state::paletteram_w)
95110{
96111   int r,g,b;
97112
r243488r243489
110125}
111126
112127
113WRITE8_MEMBER(gladiatr_state::gladiatr_spritebuffer_w)
128WRITE8_MEMBER(gladiatr_state::spritebuffer_w)
114129{
115130   m_sprite_buffer = data & 1;
116131}
trunk/src/mame/video/gsword.c
r243488r243489
8787   }
8888}
8989
90WRITE8_MEMBER(gsword_state::gsword_videoram_w)
90WRITE8_MEMBER(gsword_state::videoram_w)
9191{
92   UINT8 *videoram = m_videoram;
93   videoram[offset] = data;
92   m_videoram[offset] = data;
9493   m_bg_tilemap->mark_tile_dirty(offset);
9594}
9695
97WRITE8_MEMBER(gsword_state::gsword_charbank_w)
96WRITE8_MEMBER(gsword_state::charbank_w)
9897{
9998   if (m_charbank != data)
10099   {
r243488r243489
103102   }
104103}
105104
106WRITE8_MEMBER(gsword_state::gsword_videoctrl_w)
105WRITE8_MEMBER(gsword_state::videoctrl_w)
107106{
108107   if (data & 0x8f)
109108   {
r243488r243489
131130   /* other bits unused */
132131}
133132
134WRITE8_MEMBER(gsword_state::gsword_scroll_w)
133WRITE8_MEMBER(gsword_state::scroll_w)
135134{
136135   m_bg_tilemap->set_scrolly(0, data);
137136}
138137
139138TILE_GET_INFO_MEMBER(gsword_state::get_bg_tile_info)
140139{
141   UINT8 *videoram = m_videoram;
142   int code = videoram[tile_index] + ((m_charbank & 0x03) << 8);
140   int code = m_videoram[tile_index] + ((m_charbank & 0x03) << 8);
143141   int color = ((code & 0x3c0) >> 6) + 16 * m_charpalbank;
144142   int flags = m_flipscreen ? (TILE_FLIPX | TILE_FLIPY) : 0;
145143
r243488r243489
150148{
151149   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gsword_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
152150         8, 8, 32, 64);
151   
152   save_item(NAME(m_charbank));
153   save_item(NAME(m_charpalbank));
154   save_item(NAME(m_flipscreen));
153155}
154156
155157void gsword_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
156158{
157   int offs;
158
159   for (offs = 0; offs < m_spritexy_ram.bytes() - 1; offs+=2)
159   for (int offs = 0; offs < m_spritexy_ram.bytes() - 1; offs+=2)
160160   {
161161      int sx,sy,flipx,flipy,spritebank,tile,color;
162162
trunk/src/mame/video/liberate.c
r243488r243489
207207
208208   m_fix_tilemap->set_transparent_pen(0);
209209
210   m_fg_gfx = memregion("fg_gfx")->base();
210211   m_charram = auto_alloc_array(machine(), UINT8, 0x1800 * 2);
212   
213   save_pointer(NAME(m_charram), 0x1800 * 2);
214   save_pointer(NAME(m_fg_gfx), 0x6000);
211215}
212216
213217VIDEO_START_MEMBER(liberate_state,boomrang)
trunk/src/mame/video/quizpani.c
r243488r243489
3434         0);
3535}
3636
37WRITE16_MEMBER(quizpani_state::quizpani_bg_videoram_w)
37WRITE16_MEMBER(quizpani_state::bg_videoram_w)
3838{
3939   m_bg_videoram[offset] = data;
4040   m_bg_tilemap->mark_tile_dirty(offset);
4141}
4242
43WRITE16_MEMBER(quizpani_state::quizpani_txt_videoram_w)
43WRITE16_MEMBER(quizpani_state::txt_videoram_w)
4444{
4545   m_txt_videoram[offset] = data;
4646   m_txt_tilemap->mark_tile_dirty(offset);
4747}
4848
49WRITE16_MEMBER(quizpani_state::quizpani_tilesbank_w)
49WRITE16_MEMBER(quizpani_state::tilesbank_w)
5050{
5151   if (ACCESSING_BITS_0_7)
5252   {
r243488r243489
6969   m_bg_tilemap  = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::bg_tile_info),this), tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
7070   m_txt_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::txt_tile_info),this),tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
7171   m_txt_tilemap->set_transparent_pen(15);
72   
73   save_item(NAME(m_bgbank));
74   save_item(NAME(m_txtbank));
7275}
7376
74UINT32 quizpani_state::screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
77UINT32 quizpani_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7578{
7679   m_bg_tilemap->set_scrollx(0, m_scrollreg[0] - 64);
7780   m_bg_tilemap->set_scrolly(0, m_scrollreg[1] + 16);
trunk/src/mame/video/wrally.c
r243488r243489
3434      1  | xxx----- -------- | not used?
3535*/
3636
37TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_wrally_screen0)
37TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_screen0)
3838{
3939   int data = m_videoram[tile_index << 1];
4040   int data2 = m_videoram[(tile_index << 1) + 1];
r243488r243489
4545   SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03));
4646}
4747
48TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_wrally_screen1)
48TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_screen1)
4949{
5050   int data = m_videoram[(0x2000/2) + (tile_index << 1)];
5151   int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1];
r243488r243489
6464
6565void wrally_state::video_start()
6666{
67   m_pant[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen0),this),TILEMAP_SCAN_ROWS,16,16,64,32);
68   m_pant[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen1),this),TILEMAP_SCAN_ROWS,16,16,64,32);
67   m_pant[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_screen0),this),TILEMAP_SCAN_ROWS,16,16,64,32);
68   m_pant[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_screen1),this),TILEMAP_SCAN_ROWS,16,16,64,32);
6969
7070   m_pant[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */
7171   m_pant[1]->set_transparent_pen(0);
r243488r243489
172172
173173***************************************************************************/
174174
175UINT32 wrally_state::screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
175UINT32 wrally_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176176{
177177   /* set scroll registers */
178178   if (!flip_screen()) {
trunk/src/mame/video/xorworld.c
r243488r243489
4949   }
5050}
5151
52WRITE16_MEMBER(xorworld_state::xorworld_videoram16_w)
52WRITE16_MEMBER(xorworld_state::videoram_w)
5353{
54   UINT16 *videoram = m_videoram;
55   COMBINE_DATA(&videoram[offset]);
54   COMBINE_DATA(&m_videoram[offset]);
5655   m_bg_tilemap->mark_tile_dirty(offset);
5756}
5857
r243488r243489
6867
6968TILE_GET_INFO_MEMBER(xorworld_state::get_bg_tile_info)
7069{
71   UINT16 *videoram = m_videoram;
72   int data = videoram[tile_index];
70   int data = m_videoram[tile_index];
7371   int code = data & 0x0fff;
7472
7573   SET_TILE_INFO_MEMBER(0, code, data >> 12, 0);
r243488r243489
9694
9795void xorworld_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
9896{
99   UINT16 *spriteram16 = m_spriteram;
100   int i;
101
102   for (i = 0; i < 0x40; i += 2)
97   for (int i = 0; i < 0x40; i += 2)
10398   {
104      int sx = spriteram16[i] & 0x00ff;
105      int sy = 240 - (((spriteram16[i] & 0xff00) >> 8) & 0xff);
106      int code = (spriteram16[i+1] & 0x0ffc) >> 2;
107      int color = (spriteram16[i+1] & 0xf000) >> 12;
99      int sx = m_spriteram[i] & 0x00ff;
100      int sy = 240 - (((m_spriteram[i] & 0xff00) >> 8) & 0xff);
101      int code = (m_spriteram[i+1] & 0x0ffc) >> 2;
102      int color = (m_spriteram[i+1] & 0xf000) >> 12;
108103
109104      m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, 0, 0, sx, sy, 0);
110105   }
111106}
112107
113UINT32 xorworld_state::screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
108UINT32 xorworld_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
114109{
115110   m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
116111   draw_sprites(bitmap, cliprect);
trunk/src/mess/drivers/alesis.c
r243488r243489
88
99    http://www.vintagesynth.com/misc/hr16.php
1010    http://www.vintagesynth.com/misc/sr16.php
11    http://www.vintagesynth.com/misc/mmt8.php
1112
1213****************************************************************************/
1314
r243488r243489
7374   m_lcdc->write(space, BIT(m_kb_matrix,7), data);
7475}
7576
77WRITE8_MEMBER( alesis_state::mmt8_led_w )
78{
79   output_set_value("play_led", data & 0x01 ? 0 : 1);
80   output_set_value("record_led" , data & 0x02 ? 0 : 1);
81   output_set_value("part_led", data & 0x04 ? 0 : 1);
82   output_set_value("edit_led", data & 0x08 ? 0 : 1);
83   output_set_value("song_led", data & 0x10 ? 0 : 1);
84   output_set_value("echo_led", data & 0x20 ? 0 : 1);
85   output_set_value("loop_led", data & 0x40 ? 0 : 1);
86
87   m_leds = data;
88}
89
90READ8_MEMBER( alesis_state::mmt8_led_r )
91{
92   return m_leds;
93}
94
95WRITE8_MEMBER( alesis_state::track_led_w )
96{
97   for (int i=0; i<8; i++)
98      output_set_indexed_value("track_led", i + 1, BIT(data, i));
99}
100
101READ8_MEMBER( alesis_state::mmt8_p3_r )
102{
103   // ---- -x--   Tape in
104   // ---- x---   Start/Stop input
105   UINT8 data = 0xff;
106
107   data &= ~(m_cassette->input() > 0.01 ? 0x00 : 0x04);
108
109   return data;
110}
111
112WRITE8_MEMBER( alesis_state::mmt8_p3_w )
113{
114   // ---x ----   Tape out
115   // --x- ----   Click out
116
117   m_cassette->output(data & 0x10 ? -1.0 : +1.0);
118}
119
76120static ADDRESS_MAP_START(hr16_mem, AS_PROGRAM, 8, alesis_state)
77121   ADDRESS_MAP_UNMAP_HIGH
78122   AM_RANGE(0x0000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
r243488r243489
108152   AM_RANGE(0x8000, 0xffff) AM_RAM     AM_SHARE("nvram")   // 32Kx8 SRAM, (battery-backed)
109153ADDRESS_MAP_END
110154
155static ADDRESS_MAP_START(mmt8_io, AS_IO, 8, alesis_state)
156   ADDRESS_MAP_UNMAP_HIGH
157   AM_RANGE(0xff02, 0xff02) AM_WRITE(track_led_w)
158   AM_RANGE(0xff04, 0xff04) AM_READWRITE(mmt8_led_r, mmt8_led_w)
159   AM_RANGE(0xff06, 0xff06) AM_WRITE(kb_matrix_w)
160   AM_RANGE(0xff08, 0xff09) AM_DEVREADWRITE("hd44780", hd44780_device, read, write)
161   AM_RANGE(0xff0e, 0xff0e) AM_READNOP
162   AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ(kb_r)
163   AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITENOP
164   AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(mmt8_p3_r, mmt8_p3_w)
165   AM_RANGE(0x0000, 0xffff) AM_RAM     AM_SHARE("nvram")   // 2x32Kx8 SRAM, (battery-backed)
166ADDRESS_MAP_END
167
111168/* Input ports */
112169static INPUT_PORTS_START( hr16 )
113170   PORT_START("COL1")
r243488r243489
169226   PORT_BIT(0xff, 0x00, IPT_DIAL) PORT_NAME("SELECT Slider") PORT_SENSITIVITY(50) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_DOWN) PORT_CODE_INC(KEYCODE_UP)
170227INPUT_PORTS_END
171228
229static INPUT_PORTS_START( mmt8 )
230   PORT_START("COL1")
231   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("<<")     PORT_CODE(KEYCODE_LEFT)
232   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(">>")     PORT_CODE(KEYCODE_RIGHT)
233   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ERASE")  PORT_CODE(KEYCODE_DEL)
234   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRANS")  PORT_CODE(KEYCODE_R)
235   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PLAY")   PORT_CODE(KEYCODE_ENTER)
236   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP/CONTINUE") PORT_CODE(KEYCODE_END)
237   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COPY")   PORT_CODE(KEYCODE_C)
238   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RECORD")  PORT_CODE(KEYCODE_HOME)
239   PORT_START("COL2")
240   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 1") PORT_CODE(KEYCODE_F1)
241   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 2") PORT_CODE(KEYCODE_F2)
242   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 3") PORT_CODE(KEYCODE_F3)
243   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 4") PORT_CODE(KEYCODE_F4)
244   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 5") PORT_CODE(KEYCODE_F5)
245   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 6") PORT_CODE(KEYCODE_F6)
246   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 7") PORT_CODE(KEYCODE_F7)
247   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 8") PORT_CODE(KEYCODE_F8)
248   PORT_START("COL3")
249   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TEMPO")  PORT_CODE(KEYCODE_T)
250   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-")      PORT_CODE(KEYCODE_MINUS)
251   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+")      PORT_CODE(KEYCODE_PLUS_PAD)
252   PORT_BIT(0x38, IP_ACTIVE_LOW, IPT_UNUSED)
253   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE DOWN")  PORT_CODE(KEYCODE_DOWN)
254   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE UP")    PORT_CODE(KEYCODE_UP)
255   PORT_START("COL4")
256   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLICK")  PORT_CODE(KEYCODE_G)
257   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6")      PORT_CODE(KEYCODE_6)
258   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7")      PORT_CODE(KEYCODE_7)
259   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8")      PORT_CODE(KEYCODE_8)
260   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9")      PORT_CODE(KEYCODE_9)
261   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0")      PORT_CODE(KEYCODE_0)
262   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI CHAN") PORT_CODE(KEYCODE_I)
263   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAPE")   PORT_CODE(KEYCODE_Y)
264   PORT_START("COL5")
265   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLOCK")  PORT_CODE(KEYCODE_K)
266   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1")      PORT_CODE(KEYCODE_1)
267   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2")      PORT_CODE(KEYCODE_2)
268   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3")      PORT_CODE(KEYCODE_3)
269   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4")      PORT_CODE(KEYCODE_4)
270   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5")      PORT_CODE(KEYCODE_5)
271   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SONG")   PORT_CODE(KEYCODE_S)
272   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MERGE")  PORT_CODE(KEYCODE_M)
273   PORT_START("COL6")
274   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI FILTER") PORT_CODE(KEYCODE_F)
275   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI ECHO")   PORT_CODE(KEYCODE_H)
276   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LOOP")   PORT_CODE(KEYCODE_J)
277   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("QUANT")  PORT_CODE(KEYCODE_Q)
278   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LENGTH") PORT_CODE(KEYCODE_L)
279   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PART")   PORT_CODE(KEYCODE_P)
280   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EDIT")   PORT_CODE(KEYCODE_E)
281   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NAME")   PORT_CODE(KEYCODE_N)
282INPUT_PORTS_END
283
172284static INPUT_PORTS_START( sr16 )
173285   PORT_START("COL1")
174286   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PRESET/USER")  PORT_CODE(KEYCODE_U)
r243488r243489
229341void alesis_state::machine_reset()
230342{
231343   m_kb_matrix = 0xff;
344   m_leds = 0;
232345   memset(m_lcd_digits, 0, sizeof(m_lcd_digits));
233346}
234347
r243488r243489
292405   MCFG_HD44780_PIXEL_UPDATE_CB(sr16_pixel_update)
293406MACHINE_CONFIG_END
294407
408static MACHINE_CONFIG_DERIVED( mmt8, hr16 )
409   /* basic machine hardware */
410   MCFG_CPU_MODIFY("maincpu")
411   MCFG_CPU_IO_MAP(mmt8_io)
412
413   MCFG_DEVICE_REMOVE("dm3ag")
414MACHINE_CONFIG_END
415
295416/* ROM definition */
296417ROM_START( hr16 )
297418   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
r243488r243489
324445   ROM_LOAD( "2-27-0007.u15", 0x80000, 0x80000, CRC(319746db) SHA1(46b32a3ab2fbad67fb4566f607f578a2e9defd63))
325446ROM_END
326447
448ROM_START( mmt8 )
449   ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
450   ROM_SYSTEM_BIOS(0, "v111", "ver 1.11")
451   ROMX_LOAD( "mt8v1-11.bin", 0x00000, 0x08000, CRC(c9951946) SHA1(149bc5ea46466537de4074820c66a2296ea43bc1), ROM_BIOS(1))
452   ROM_SYSTEM_BIOS(1, "v109", "ver 1.09")
453   ROMX_LOAD( "mt8v1-09.bin", 0x00000, 0x08000, CRC(0ec41dec) SHA1(2c283965e510b586a08f0290df4dd357e6b19b62), ROM_BIOS(2))
454   ROM_SYSTEM_BIOS(2, "v108", "ver 1.08")
455   ROMX_LOAD( "mt8v1-08.bin", 0x00000, 0x08000, CRC(a0615455) SHA1(77395c837b356b34d6b96f6f46eca8c89b57434e), ROM_BIOS(3))
456ROM_END
457
327458ROM_START( sr16 )
328459   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
329460   ROM_SYSTEM_BIOS(0, "v104", "ver 1.04")
r243488r243489
349480/* Driver */
350481/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    COMPANY    FULLNAME       FLAGS */
351482SYST( 1987, hr16,  0,       0,       hr16,      hr16, alesis_state,  hr16,   "Alesis",  "HR-16",       GAME_NOT_WORKING | GAME_NO_SOUND)
483SYST( 1987, mmt8,  0,       0,       mmt8,      mmt8, driver_device,    0,   "Alesis",  "MMT-8",       GAME_NOT_WORKING | GAME_NO_SOUND)
352484SYST( 1989, hr16b, hr16,    0,       hr16,      hr16, alesis_state,  hr16,   "Alesis",  "HR-16B",      GAME_NOT_WORKING | GAME_NO_SOUND)
353485SYST( 1990, sr16,  0,       0,       sr16,      sr16, driver_device,    0,   "Alesis",  "SR-16",       GAME_NOT_WORKING | GAME_NO_SOUND)
trunk/src/mess/drivers/amaztron.c
r243488r243489
22// copyright-holders:hap
33/***************************************************************************
44
5  Coleco Amaze-A-Tron
5  Coleco Amaze-A-Tron, by Ralph Baer
66  * TMS1100 MCU, labeled MP3405(die label too)
77
88  This is an electronic board game with a selection of 8 maze games,
trunk/src/mess/drivers/cnsector.c
r243488r243489
22// copyright-holders:hap
33/***************************************************************************
44
5  Parker Brothers Code Name: Sector
5  Parker Brothers Code Name: Sector, by Bob Doyle
66  * MP0905BNL ZA0379 (die labeled 0970F-05B)
77
88  This is a tabletop submarine pursuit game. A grid board and small toy
trunk/src/mess/drivers/kaypro.c
r243488r243489
99    telephone cord, complete with modular plug on each end. The keyboard carries
1010    its own Intel 87C51 processor and is an intelligent device.
1111
12    Kaypro 10 notes:
13    - This machine comes with a 10MB hard drive, split into 2 5MB partitions. It also
14      has one floppy drive. The drive letters change depending on what drive it was booted
15      from. The boot drive is always A:.
16      If booted from floppy:
17      A: floppy
18      B: HD partition 1
19      C: HD partition 2
20      If booted from HD (presumably partition 1)
21      A: HD partition 1
22      B: HD partition 2
23      C: floppy
24
1225    ToDo:
1326
1427    - See about getting keyboard to work as a serial device.
1528    - Need dump of 87C51 cpu in the keyboard.
1629
1730    - Kaypro 2x, 4a: floppy not working "No operating system present on this disk"
18    - Kaypro 10: Boots from floppy, but B drive not working "Bdos Err on B: Bad Sector"
31    - Kaypro 10: Boots from floppy, but needs hard drive added.
1932    - Kaypro 4p88: works as a normal Kaypro 4, extra hardware not done
2033    - Kaypro Robie: has twin 2.6MB 5.25 floppy drives which we don't support, no software available
2134
r243488r243489
299312   MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", kaypro_state::kaypro2x_floppy_formats)
300313MACHINE_CONFIG_END
301314
315static MACHINE_CONFIG_DERIVED( kaypro10, kaypro2x )
316   MCFG_DEVICE_REMOVE("fdc:1")  // only has 1 floppy drive
317   // need to add hard drive & controller
318MACHINE_CONFIG_END
319
302320static MACHINE_CONFIG_DERIVED( omni2, kaypro4 )
303321   MCFG_SCREEN_MODIFY("screen")
304322   MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_omni2)
r243488r243489
435453COMP( 1984, kaypro2x,   0,        0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 2x" , GAME_NOT_WORKING ) // model 81-025
436454COMP( 1984, kaypro4a,   kaypro2x, 0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 4 - 4/84" , GAME_NOT_WORKING ) // model 81-015
437455// Kaypro 4/84 plus 88 goes here, model 81-015 with an added 8088 daughterboard and rom
438COMP( 1983, kaypro10,   0,        0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 10" , GAME_NOT_WORKING ) // model 81-005
456COMP( 1983, kaypro10,   0,        0,    kaypro10, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 10" , GAME_NOT_WORKING ) // model 81-005
439457COMP( 1984, robie,      0,        0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro Robie" , GAME_NOT_WORKING ) // model 81-005
trunk/src/mess/drivers/mbee.c
r243488r243489
5555        F000-F7FF Video RAM
5656        F800-FFFF PCG RAM (graphics), Colour RAM (banked)
5757
58    Early machines have 'standard' video (128 hires characters).
59    Later machines had the option of 'premium' video which
60    provides thousands of hires characters, enough to simulate
61    bit-mapped graphics.
62
5863    Commands to call up built-in roms (depends on the model):
5964    NET - Jump to E000, usually the Telcom communications program.
6065          This rom can be replaced with the Dreamdisk Chip-8 rom.
6166        Note that Telcom 3.21 is 8k, it uses a rombank switch
6267        (by reading port 0A) to swap between the two halves.
68        Most parts of NET can be called up from Basic, e.g.
69        NET CLOCK will turn on the clock, NET CLOCKD will remove
70        the resultant status bar, NET TIME hhmm to set the time, etc.
71        Further, after doing a NET command, the 80x24 mode becomes
72        available to Basic. OUT#7 to turn it on, OUT#0 for 64x16.
6373
6474    EDASM - Jump to C000, usually the editor/Assembler package.
6575
r243488r243489
100110      crashes due to a bug in z80pio emulation.
101111   
102112    - 256tc: Keyboard ROM U60 needs to be dumped.
103    - 128k: PROM PAL needs to be dumped for the bankswitching.
113    - 128k: GOLD PAL needs to be dumped for the bankswitching.
114    - 64k: RED PAL needs to be dumped for the bankswitching.
104115
105    - Teleterm: keyboard is problematic, and cursor doesn't show.
116    - Teleterm: keyboard is problematic, and cursor doesn't show. Also, the
117                schematic shows it using the old-style keyboard, however this
118                must be wrong since the computer has function keys, which are
119                only available on the new keyboard.
106120
121    - Mouse: a few programs support the use of a serial mouse which interfaced
122             directly to the Z80PIO. However there's little info to be found.
107123
108124***************************************************************************
109125
r243488r243489
190206   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
191207ADDRESS_MAP_END
192208
193static ADDRESS_MAP_START(mbee64_mem, AS_PROGRAM, 8, mbee_state)
194   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
195   AM_RANGE(0x1000, 0x7fff) AM_RAMBANK("bankl")
196   AM_RANGE(0x8000, 0xefff) AM_RAMBANK("bankh")
197   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
198   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
199ADDRESS_MAP_END
200
201209static ADDRESS_MAP_START(mbee256_mem, AS_PROGRAM, 8, mbee_state)
202210   AM_RANGE(0x0000, 0x0fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
203211   AM_RANGE(0x1000, 0x1fff) AM_READ_BANK("bankr1") AM_WRITE_BANK("bankw1")
r243488r243489
295303   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
296304ADDRESS_MAP_END
297305
298static ADDRESS_MAP_START(mbee64_io, AS_IO, 8, mbee_state)
299   ADDRESS_MAP_GLOBAL_MASK(0xff)
300   ADDRESS_MAP_UNMAP_HIGH
301   AM_RANGE(0x00, 0x03) AM_MIRROR(0x10) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
302   AM_RANGE(0x08, 0x08) AM_MIRROR(0x10) AM_READWRITE(mbeeic_08_r, mbeeic_08_w)
303   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w)
304   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w)
305   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w)
306   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write)
307   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
308   AM_RANGE(0x50, 0x57) AM_WRITE(mbee64_50_w)
309ADDRESS_MAP_END
310
311306static ADDRESS_MAP_START(mbee128_io, AS_IO, 8, mbee_state)
312307   ADDRESS_MAP_GLOBAL_MASK(0xff)
313308   ADDRESS_MAP_UNMAP_HIGH
r243488r243489
780775   MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
781776MACHINE_CONFIG_END
782777
783static MACHINE_CONFIG_DERIVED( mbee64, mbee56 )
778static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
784779   MCFG_CPU_MODIFY( "maincpu" )
785   MCFG_CPU_PROGRAM_MAP(mbee64_mem)
786   MCFG_CPU_IO_MAP(mbee64_io)
787   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee64)
788MACHINE_CONFIG_END
789
790static MACHINE_CONFIG_DERIVED( mbee128, mbeeppc )
791   MCFG_CPU_MODIFY( "maincpu" )
792780   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
793781   MCFG_CPU_IO_MAP(mbee128_io)
794782   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128)
r243488r243489
799787   MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
800788MACHINE_CONFIG_END
801789
802static MACHINE_CONFIG_DERIVED( mbee256, mbee128 )
790static MACHINE_CONFIG_DERIVED( mbee128, mbee128p )
791   MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic)
792MACHINE_CONFIG_END
793
794static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
803795   MCFG_CPU_MODIFY( "maincpu" )
804796   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
805797   MCFG_CPU_IO_MAP(mbee256_io)
r243488r243489
10841076   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
10851077ROM_END
10861078
1087ROM_START( mbee64 ) // CIAB (Computer-In-A-Book)
1088   ROM_REGION(0x10000,"maincpu", ROMREGION_ERASEFF)
1079ROM_START( mbee128 ) // Standard 128k (CIAB is the same thing with half the ram)
1080   ROM_REGION(0x10000, "rams", ROMREGION_ERASEFF)
10891081
1090   ROM_REGION(0x7000,"bootrom", ROMREGION_ERASEFF)
1082   ROM_REGION(0x7000, "roms", ROMREGION_ERASEFF)
10911083   ROM_LOAD("bn54.bin",              0x0000,  0x2000, CRC(995c53db) SHA1(46e1a5cfd5795b8cf528bacf9dc79398ff7d64af) )
10921084
10931085   ROM_REGION(0x2000, "gfx", 0)
10941086   ROM_LOAD("charrom.bin",           0x1000,  0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0) )
10951087   ROM_RELOAD( 0x0000, 0x1000 )
10961088
1089   ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
1090   ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
1091
10971092   ROM_REGION( 0x0040, "proms", 0 )
10981093   ROM_LOAD( "82s123.ic7",           0x0000,  0x0020, CRC(61b9c16c) SHA1(0ee72377831c21339360c376f7248861d476dc20) )
10991094   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
r243488r243489
11021097   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
11031098ROM_END
11041099
1105ROM_START( mbee128 ) // 128K
1100ROM_START( mbee128p ) // Premium 128K
11061101   ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF)
11071102
11081103   ROM_REGION(0x8000, "roms", 0) // rom plus optional undumped roms plus dummy area
1109   ROM_SYSTEM_BIOS( 0, "bn60", "Version 2.03" )
1110   ROMX_LOAD("bn60.rom",     0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(1) )
1104   ROM_SYSTEM_BIOS( 0, "bn56", "bn56" )
1105   ROMX_LOAD("bn56.rom",     0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(1) )
11111106   ROM_SYSTEM_BIOS( 1, "bn59", "Version 2.02" )
11121107   ROMX_LOAD("bn59.rom",     0x0000, 0x2000, CRC(97384116) SHA1(87f2c4ab1a1f2964ba4f2bb60e62dc9c163831ba), ROM_BIOS(2) )
1113   ROM_SYSTEM_BIOS( 2, "bn56", "bn56" )
1114   ROMX_LOAD("bn56.rom",     0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(3) )
1108   ROM_SYSTEM_BIOS( 2, "bn60", "Version 2.03" )
1109   ROMX_LOAD("bn60.rom",     0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(3) )
11151110   ROM_SYSTEM_BIOS( 3, "bn55", "bn55" )
11161111   ROMX_LOAD("bn55.rom",     0x0000, 0x2000, CRC(ca2c1073) SHA1(355d90d181de899cc7af892df96305fead9c81b4), ROM_BIOS(4) )
11171112   ROM_SYSTEM_BIOS( 4, "bn54", "bn54" )
r243488r243489
11191114   ROM_SYSTEM_BIOS( 5, "hd18", "Hard Disk System" )
11201115   ROMX_LOAD("hd18.rom",     0x0000, 0x2000, CRC(ed53ace7) SHA1(534e2e00cc527197c76b3c106b3c9ff7f1328487), ROM_BIOS(6) )
11211116
1122   ROM_REGION(0x4000, "proms", 0) // undumped; using prom from 256tc for now
1117   ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
11231118   ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
11241119
11251120   ROM_REGION(0x9800, "gfx", 0)
r243488r243489
11401135   ROM_SYSTEM_BIOS( 1, "1.15", "Version 1.15" )
11411136   ROMX_LOAD("256tc_boot_1.15.u38", 0x0000, 0x4000, CRC(1902062d) SHA1(e4a1c0b3f4996e313da0bac0edb6d34e3270723e), ROM_BIOS(2) )
11421137
1143   ROM_REGION(0x4000, "proms", 0)
1138   ROM_REGION(0x4000, "pals", 0)
11441139   ROM_LOAD( "silver.u39", 0x0000, 0x4000, CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
11451140
11461141   ROM_REGION(0x9800, "gfx", 0)
r243488r243489
11691164COMP( 1986, mbeeppc,  mbee,     0,      mbeeppc,  mbee,     mbee_state,  mbeeppc,    "Applied Technology",  "Microbee Premium PC85" , 0 )
11701165COMP( 1986, mbeett,   mbee,     0,      mbeett,   mbee256,  mbee_state,  mbeett,     "Applied Technology",  "Microbee Teleterm" , GAME_NOT_WORKING )
11711166COMP( 1986, mbee56,   mbee,     0,      mbee56,   mbee,     mbee_state,  mbee56,     "Applied Technology",  "Microbee 56k" , GAME_NOT_WORKING )
1172COMP( 1986, mbee64,   mbee,     0,      mbee64,   mbee,     mbee_state,  mbee64,     "Applied Technology",  "Microbee 64k" , GAME_NOT_WORKING )
1173COMP( 1986, mbee128,  mbee,     0,      mbee128,  mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k" , GAME_NOT_WORKING )
1167COMP( 1986, mbee128,  mbee,     0,      mbee128,  mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k Standard" , GAME_NOT_WORKING )
1168COMP( 1986, mbee128p, mbee,     0,      mbee128p, mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k Premium" , GAME_NOT_WORKING )
11741169COMP( 1987, mbee256,  mbee,     0,      mbee256,  mbee256,  mbee_state,  mbee256,    "Applied Technology",  "Microbee 256TC" , GAME_NOT_WORKING )
trunk/src/mess/drivers/merlin.c
r243488r243489
22// copyright-holders:Wilbert Pol, hap
33/***************************************************************************
44
5  Parker Bros Merlin handheld computer game
5  Parker Bros Merlin handheld computer game, by Bob Doyle
66  * TMS1100NLL MP3404A-N2 (has internal ROM)
77
88  To start a game, press NEW GAME, followed by a number:
trunk/src/mess/drivers/pcd.c
r243488r243489
1919#include "machine/wd_fdc.h"
2020#include "machine/mc146818.h"
2121#include "sound/speaker.h"
22#include "video/scn2674.h"
2223
23
2424//**************************************************************************
2525//  TYPE DEFINITIONS
2626//**************************************************************************
r243488r243489
3636   m_speaker(*this, "speaker"),
3737   m_sasi(*this, "sasi"),
3838   m_fdc(*this, "fdc"),
39   m_rtc(*this, "rtc")
39   m_rtc(*this, "rtc"),
40   m_crtc(*this, "crtc"),
41   m_vram(*this, "vram"),
42   m_charram(8*1024)
4043   { }
4144
42   DECLARE_WRITE_LINE_MEMBER( pic1_irq );
43   DECLARE_READ8_MEMBER( pic1_slave_ack_r );
45   DECLARE_READ8_MEMBER( irq_callback );
4446   TIMER_DEVICE_CALLBACK_MEMBER( timer0_tick );
4547   DECLARE_WRITE_LINE_MEMBER( i186_timer1_w );
4648
47   DECLARE_READ8_MEMBER( crt_data_r );
48   DECLARE_WRITE8_MEMBER( crt_data_w );
49   DECLARE_READ8_MEMBER( crt_status_r );
49   DECLARE_READ8_MEMBER( charram_r );
50   DECLARE_WRITE8_MEMBER( charram_w );
51   DECLARE_READ16_MEMBER( nmi_io_r );
52   DECLARE_WRITE16_MEMBER( nmi_io_w );
53   DECLARE_READ8_MEMBER( rtc_r );
54   DECLARE_WRITE8_MEMBER( rtc_w );
55   DECLARE_READ8_MEMBER( stat_r );
56   DECLARE_WRITE8_MEMBER( stat_w );
57   DECLARE_READ8_MEMBER( led_r );
58   DECLARE_WRITE8_MEMBER( led_w );
59   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5060
5161protected:
5262   // driver_device overrides
5363   virtual void machine_start();
64   virtual void machine_reset();
5465
5566private:
5667   required_device<i80186_cpu_device> m_maincpu;
r243488r243489
6071   required_device<omti5100_device> m_sasi;
6172   required_device<wd2793_t> m_fdc;
6273   required_device<mc146818_device> m_rtc;
74   required_device<scn2674_device> m_crtc;
75   required_shared_ptr<UINT16> m_vram;
76   dynamic_buffer m_charram;
77   UINT8 m_stat, m_led;
6378};
6479
6580
r243488r243489
6782//  MACHINE EMULATION
6883//**************************************************************************
6984
85static const gfx_layout pcd_charlayout =
86{
87   8, 14,                   /* 8 x 14 characters */
88   512,                    /* 512 characters */
89   1,                  /* 1 bits per pixel */
90   { 0 },                  /* no bitplanes */
91   /* x offsets */
92   { 0, 1, 2, 3, 4, 5, 6, 7 },
93   /* y offsets */
94   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8 },
95   8*16
96};
7097void pcd_state::machine_start()
7198{
99   machine().device<gfxdecode_device>("gfxdecode")->set_gfx(0, global_alloc(gfx_element(machine().device<palette_device>("palette"), pcd_charlayout, m_charram, 0, 2, 0)));
72100}
73101
74WRITE_LINE_MEMBER( pcd_state::pic1_irq )
102void pcd_state::machine_reset()
75103{
76   logerror("pic1 irq: %d\n", state);
77   m_maincpu->int0_w(state); // ?
104   m_stat = 0;
105   m_led = 0;
78106}
79107
80READ8_MEMBER( pcd_state::pic1_slave_ack_r )
108READ8_MEMBER( pcd_state::irq_callback )
81109{
82   if (offset == 0) // irq 0
83      return m_pic2->acknowledge();
84
85   return 0x00;
110   return (offset ? m_pic2 : m_pic1)->acknowledge();
86111}
87112
88113TIMER_DEVICE_CALLBACK_MEMBER( pcd_state::timer0_tick )
r243488r243489
96121   m_speaker->level_w(state);
97122}
98123
99READ8_MEMBER( pcd_state::crt_data_r )
124READ8_MEMBER( pcd_state::charram_r )
100125{
101   logerror("crt_data_r @ %02x\n", offset);
102   return 0xff;
126   return m_charram[offset >> 1];
103127}
104128
105WRITE8_MEMBER( pcd_state::crt_data_w )
129WRITE8_MEMBER( pcd_state::charram_w )
106130{
107   logerror("crt_data_w %02x @ %02x\n", data, offset);
131   m_charram[offset >> 1] = data;
108132}
109133
110READ8_MEMBER( pcd_state::crt_status_r )
134READ16_MEMBER( pcd_state::nmi_io_r )
111135{
112   logerror("crt_status_r @ %02x\n", offset);
113   return 0xff;
136   if(space.debugger_access())
137      return 0;
138   logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset << 1);
139   m_stat |= 8;
140   m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
141   return 0;
114142}
115143
144WRITE16_MEMBER( pcd_state::nmi_io_w )
145{
146   if(space.debugger_access())
147      return;
148   logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset << 1);
149   m_stat |= 8;
150   m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
151}
116152
153READ8_MEMBER( pcd_state::rtc_r )
154{
155   m_rtc->write(space, 0, offset);
156   return m_rtc->read(space, 1);
157}
158
159WRITE8_MEMBER( pcd_state::rtc_w )
160{
161   m_rtc->write(space, 0, offset);
162   m_rtc->write(space, 1, data);
163}
164
165READ8_MEMBER( pcd_state::stat_r )
166{
167   return m_stat;
168}
169
170WRITE8_MEMBER( pcd_state::stat_w )
171{
172   m_stat = data;
173}
174
175READ8_MEMBER( pcd_state::led_r )
176{
177   return m_led;
178}
179
180WRITE8_MEMBER( pcd_state::led_w )
181{
182   for(int i = 0; i < 6; i++)
183      logerror("%c", (data & (1 << i)) ? '-' : '*');
184   logerror("\n");
185   m_led = data;
186}
187
188UINT32 pcd_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
189{
190   //bitmap.fill(0, cliprect);
191   m_crtc->scn2574_draw(machine(), bitmap, cliprect, m_vram);
192   return 0;
193}
194
117195//**************************************************************************
118196//  ADDRESS MAPS
119197//**************************************************************************
120198
121199static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state )
122200   AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now
201   AM_RANGE(0xf0000, 0xf7fff) AM_RAM AM_SHARE("vram")
202   //AM_RANGE(0xf7000, 0xfbfff) AM_READWRITE8(charram_r, charram_w, 0xffff)
123203   AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
204   AM_RANGE(0x00000, 0xfffff) AM_READWRITE(nmi_io_r, nmi_io_w)
124205ADDRESS_MAP_END
125206
126207static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state )
127208   ADDRESS_MAP_UNMAP_HIGH
128209   AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
129   AM_RANGE(0xf840, 0xf841) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xff00)
130   AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0x00ff)
131//  AM_RANGE(0xf940, 0xf941) // sasi controller here?
132   AM_RANGE(0xf980, 0xf981) AM_READWRITE8(crt_data_r, crt_data_w, 0x00ff) AM_READ8(crt_status_r, 0xff00)
133//  AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select)
210   AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xffff)
211   AM_RANGE(0xf820, 0xf821) AM_DEVREADWRITE8("pic2", pic8259_device, read, write, 0xffff)
212   AM_RANGE(0xf840, 0xf841) AM_READWRITE8(stat_r, stat_w, 0x00ff)
213   AM_RANGE(0xf840, 0xf841) AM_READWRITE8(led_r, led_w, 0xff00)
214   AM_RANGE(0xf880, 0xf8bf) AM_READWRITE8(rtc_r, rtc_w, 0xffff)
215   AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0xffff)
216   //AM_RANGE(0xf940, 0xf943) scsi
217   AM_RANGE(0xf9c0, 0xf9c3) AM_DEVREADWRITE8("usart1",mc2661_device,read,write,0xffff)  // UARTs
218   AM_RANGE(0xf9d0, 0xf9d3) AM_DEVREADWRITE8("usart2",mc2661_device,read,write,0xffff)
219   AM_RANGE(0xf9e0, 0xf9e3) AM_DEVREADWRITE8("usart3",mc2661_device,read,write,0xffff)
220   AM_RANGE(0xf980, 0xf987) AM_DEVWRITE8("crtc", scn2674_device, mpu4_vid_scn2674_w, 0x00ff)
221   AM_RANGE(0xf980, 0xf987) AM_DEVREAD8("crtc", scn2674_device, mpu4_vid_scn2674_r, 0xff00)
222//   AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select)
223   AM_RANGE(0x0000, 0xffff) AM_READWRITE(nmi_io_r, nmi_io_w)
134224ADDRESS_MAP_END
135225
136226
r243488r243489
144234SLOT_INTERFACE_END
145235
146236static MACHINE_CONFIG_START( pcd, pcd_state )
147   MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2)
237   MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz)
148238   MCFG_CPU_PROGRAM_MAP(pcd_map)
149239   MCFG_CPU_IO_MAP(pcd_io)
150240   MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
241   MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback))
151242
152   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 2 / 16))
243   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post
153244
154   MCFG_PIC8259_ADD("pic1", WRITELINE(pcd_state, pic1_irq), VCC, READ8(pcd_state, pic1_slave_ack_r))
155   MCFG_PIC8259_ADD("pic2", DEVWRITELINE("pic1", pic8259_device, ir0_w), GND, NULL)
245   MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL)
246   MCFG_PIC8259_ADD("pic2", DEVWRITELINE("maincpu", i80186_cpu_device, int1_w), VCC, NULL)
156247
157248#if 0
158249   MCFG_RAM_ADD(RAM_TAG)
r243488r243489
167258   MCFG_OMTI5100_ADD("sasi")
168259
169260   // floppy disk controller
170   MCFG_WD2793x_ADD("fdc", XTAL_16MHz/2/8)
261   MCFG_WD2793x_ADD("fdc", XTAL_16MHz/8)
171262   MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic1", pic8259_device, ir6_w))
172263   MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w))
173264
r243488r243489
188279   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
189280   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
190281
282   // video hardware
283   MCFG_SCREEN_ADD("screen", RASTER)
284   MCFG_SCREEN_SIZE(640, 350)
285   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 349)
286   MCFG_SCREEN_REFRESH_RATE(50)
287   MCFG_SCREEN_UPDATE_DRIVER(pcd_state, screen_update)
288
289   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
290   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
291
292   MCFG_SCN2674_VIDEO_ADD("crtc", 0, NULL);
293   MCFG_SCN2674_GFXDECODE("gfxdecode")
294   MCFG_SCN2674_PALETTE("palette")
295
191296   // rtc
192297   MCFG_MC146818_ADD("rtc", XTAL_32_768kHz)
193298   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w))
r243488r243489
202307   ROM_REGION(0x4000, "bios", 0)
203308   ROM_LOAD16_BYTE("s26361-d359.d42", 0x0001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73))
204309   ROM_LOAD16_BYTE("s26361-d359.d43", 0x0000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda))
310   ROM_FILL(0xb64, 1, 0xe2)  // post expects 0xd0 fdc command to be instant, give it a delay
311   ROM_FILL(0xb65, 1, 0xfe)
312   ROM_FILL(0x3ffe, 1, 0xb4)  // fix csum
313   ROM_FILL(0x3fff, 1, 0x22)
205314
206315   // gfx card (scn2674 with 8741), to be moved
207316   ROM_REGION(0x400, "graphics", 0)
trunk/src/mess/drivers/prestige.c
r243488r243489
874874COMP( 1996, gjrstar2,  gjrstar, 0,  prestige,   prestige, driver_device,     0,  "VTech",   "Genius Junior Redstar 2 (Germany)", GAME_IS_SKELETON)
875875COMP( 1998, gjrstar3,  0,       0,  prestige,   prestige, driver_device,     0,  "VTech",   "Genius Junior Redstar 3 (Germany)", GAME_IS_SKELETON)
876876COMP( 1998, gj5000,    0,       0,  prestige,   prestige, driver_device,     0,  "VTech",   "Genius Junior 5000 (Germany)", GAME_IS_SKELETON)
877
878
879// gl6600cx use a NSC1028 system-on-a-chip designed by National Semiconductor specifically for VTech
880// http://web.archive.org/web/19991127134657/http://www.national.com/news/item/0,1735,425,00.html
877881COMP( 1999, gl6600cx,  0,       0,  prestige,   prestige, driver_device,     0,  "VTech",   "Genius Leader 6600CX (Germany)", GAME_IS_SKELETON)
trunk/src/mess/drivers/samcoupe.c
r243488r243489
334334   AM_RANGE(0x00fd, 0x00fd) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(samcoupe_midi_r, samcoupe_midi_w)
335335   AM_RANGE(0x00fe, 0x00fe) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(samcoupe_keyboard_r, samcoupe_border_w)
336336   AM_RANGE(0x00ff, 0x00ff) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READ(samcoupe_attributes_r)
337   AM_RANGE(0x00ff, 0x00ff) AM_MIRROR(0xfe00) AM_MASK(0xffff) AM_DEVWRITE("saa1099", saa1099_device, saa1099_data_w)
338   AM_RANGE(0x01ff, 0x01ff) AM_MIRROR(0xfe00) AM_MASK(0xffff) AM_DEVWRITE("saa1099", saa1099_device, saa1099_control_w)
337   AM_RANGE(0x00ff, 0x00ff) AM_MIRROR(0xfe00) AM_MASK(0xffff) AM_DEVWRITE("saa1099", saa1099_device, data_w)
338   AM_RANGE(0x01ff, 0x01ff) AM_MIRROR(0xfe00) AM_MASK(0xffff) AM_DEVWRITE("saa1099", saa1099_device, control_w)
339339ADDRESS_MAP_END
340340
341341
trunk/src/mess/drivers/simon.c
r243488r243489
22// copyright-holders:hap
33/***************************************************************************
44
5  Milton Bradley Simon
5  Milton Bradley Simon, created by Ralph Baer
66
77  Revision A hardware:
88  * TMS1000 (has internal ROM), DS75494 lamp driver
trunk/src/mess/drivers/splitsec.c
r243488r243489
1616  *: higher number indicates higher difficulty
1717
1818
19****************************************************************************
19----------------------------------------------------------------------------
2020
21  Parker Brothers Bank Shot (also released in other regions as Cue Ball)
21  Parker Brothers Bank Shot (known as Cue Ball in the UK), by Garry Kitchen
2222  * TMS1400NLL MP7313-N2 (die labeled MP7313)
23 
24  x
2523
24  Bank Shot is an electronic pool game. To select a game, repeatedly press
25  the [SELECT] button, then press [CUE UP] to start. Refer to the official
26  manual for more information. The game selections are:
27  1: Straight Pool (1 player)
28  2: Straight Pool (2 players)
29  3: Poison Pool
30  4: Trick Shots
2631
32
33  TODO:
34  - bankshot: the cue ball led is strobed more often than other leds,
35    making it look brighter. We need more accurate led decay simulation
36    for this to work.
37  - MCU clock is unknown
38
2739***************************************************************************/
2840
2941#include "emu.h"
r243488r243489
106118       70    72    74
107119
108120
109  Bank Shot:
121  Bank Shot: pretty much linear, see bankshot.lay
110122
111x
112
113123*/
114124
115125void splitsec_state::leds_update()
r243488r243489
234244   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
235245INPUT_PORTS_END
236246
247
248/* bankshot physical button layout and labels is like this:
249
250    [SELECT  [BALL UP] [BALL OVER]
251     SCORE]
252
253    ------  led display  ------
254   
255    [ANGLE]  [AIM]     [CUE UP
256                        SHOOT]
257*/
258
237259static INPUT_PORTS_START( bankshot )
238260   PORT_START("IN.0") // R2
239   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
240   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
241   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
261   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Angle")
262   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Aim")
263   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Cue Up / Shoot")
242264   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
243265
244266   PORT_START("IN.1") // R3
245   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 )
246   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 )
247   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 )
267   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Select / Score")
268   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Ball Up")
269   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Ball Over")
248270   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
249271INPUT_PORTS_END
250272
r243488r243489
337359
338360
339361CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", GAME_SUPPORTS_SAVE )
340CONS( 1980, bankshot, 0, 0, bankshot, bankshot, driver_device, 0, "Parker Brothers", "Bank Shot - Electronic Pool", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
362CONS( 1980, bankshot, 0, 0, bankshot, bankshot, driver_device, 0, "Parker Brothers", "Bank Shot - Electronic Pool", GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/stopthie.c
r243488r243489
22// copyright-holders:hap
33/***************************************************************************
44
5  Parker Brothers Stop Thief
5  Parker Brothers Stop Thief, by Bob Doyle
66  * TMS0980NLL MP6101B (die labeled 0980B-01A)
77
88  Stop Thief is actually a board game, the electronic device emulated here
trunk/src/mess/drivers/wildfire.c
r243488r243489
22// copyright-holders:hap
33/***************************************************************************
44
5  Parker Brothers Wildfire
5  Parker Brothers Wildfire, by Bob and Holly Doyle (prototype), and Garry Kitchen
66  * AMI S2150, labeled C10641
77
8  x
89
10
11  TODO:
12  - no sound
13  - flipper buttons aren't working correctly
14  - some 7segs digits are wrong (mcu on-die decoder is customizable?)
15  - MCU clock is unknown
16
917***************************************************************************/
1018
1119#include "emu.h"
r243488r243489
1624
1725// master clock is a single stage RC oscillator: R=?K, C=?pf,
1826// S2150 default frequency is 850kHz
19#define MASTER_CLOCK (850000/4)
27#define MASTER_CLOCK (850000)
2028
2129
2230class wildfire_state : public driver_device
trunk/src/mess/includes/alesis.h
r243488r243489
7676   void update_lcd_symbols(bitmap_ind16 &bitmap, UINT8 pos, UINT8 y, UINT8 x, int state);
7777   DECLARE_DRIVER_INIT(hr16);
7878   DECLARE_WRITE8_MEMBER( led_w );
79   DECLARE_WRITE8_MEMBER( mmt8_led_w );
80   DECLARE_READ8_MEMBER( mmt8_led_r );
81   DECLARE_WRITE8_MEMBER( track_led_w );
7982   DECLARE_WRITE8_MEMBER( kb_matrix_w );
8083   DECLARE_READ8_MEMBER( kb_r );
8184   DECLARE_READ8_MEMBER( p3_r );
8285   DECLARE_WRITE8_MEMBER( p3_w );
86   DECLARE_READ8_MEMBER( mmt8_p3_r );
87   DECLARE_WRITE8_MEMBER( mmt8_p3_w );
8388   DECLARE_WRITE8_MEMBER( sr16_lcd_w );
8489
8590private:
8691   UINT8       m_kb_matrix;
92   UINT8       m_leds;
8793   UINT8       m_lcd_digits[5];
8894   required_device<cpu_device> m_maincpu;
8995};
trunk/src/mess/includes/kaypro.h
r243488r243489
9696   required_device<centronics_device> m_centronics;
9797   required_device<fd1793_t> m_fdc;
9898   required_device<floppy_connector> m_floppy0;
99   required_device<floppy_connector> m_floppy1;
99   optional_device<floppy_connector> m_floppy1;
100100   optional_device<mc6845_device> m_crtc;
101101   required_device<beep_device> m_beep;
102102};
trunk/src/mess/includes/mbee.h
r243488r243489
5252      , m_pak(*this, "pak")
5353      , m_telcom(*this, "telcom")
5454      , m_basic(*this, "basic")
55      , m_bankl(*this, "bankl")
56      , m_bankh(*this, "bankh")
57      , m_bank1(*this, "bank1")
58      , m_bank8l(*this, "bank8l")
59      , m_bank8h(*this, "bank8h")
60      , m_bank9(*this, "bank9")
61      , m_bankfl(*this, "bankfl")
62      , m_bankfh(*this, "bankfh")
6355      , m_io_x0(*this, "X0")
6456      , m_io_x1(*this, "X1")
6557      , m_io_x2(*this, "X2")
r243488r243489
129121   DECLARE_DRIVER_INIT(mbeepc);
130122   DECLARE_DRIVER_INIT(mbeeic);
131123   DECLARE_DRIVER_INIT(mbee128);
132   DECLARE_DRIVER_INIT(mbee64);
133124   DECLARE_MACHINE_RESET(mbee);
134125   DECLARE_VIDEO_START(mbee);
135126   DECLARE_VIDEO_START(mbeeic);
r243488r243489
138129   DECLARE_VIDEO_START(mbeeppc);
139130   DECLARE_PALETTE_INIT(mbeeppc);
140131   DECLARE_MACHINE_RESET(mbee56);
141   DECLARE_MACHINE_RESET(mbee64);
142132   DECLARE_MACHINE_RESET(mbee128);
143133   DECLARE_MACHINE_RESET(mbee256);
144134   DECLARE_MACHINE_RESET(mbeett);
r243488r243489
147137   TIMER_CALLBACK_MEMBER(mbee256_kbd);
148138   TIMER_CALLBACK_MEMBER(mbee_rtc_irq);
149139   TIMER_CALLBACK_MEMBER(mbee_reset);
150   DECLARE_QUICKLOAD_LOAD_MEMBER( mbee );
151   DECLARE_QUICKLOAD_LOAD_MEMBER( mbee_z80bin );
140   DECLARE_QUICKLOAD_LOAD_MEMBER(mbee);
141   DECLARE_QUICKLOAD_LOAD_MEMBER(mbee_z80bin);
152142   WRITE_LINE_MEMBER(fdc_intrq_w);
153143   WRITE_LINE_MEMBER(fdc_drq_w);
154144   UINT8 *m_p_videoram;
r243488r243489
169159
170160   required_device<palette_device> m_palette;
171161private:
162   bool m_is_premium;
172163   size_t m_size;
173164   UINT8 m_clock_pulse;
174165   UINT8 m_mbee256_key_available;
r243488r243489
177168   UINT8 m_mbee256_q_pos;
178169   UINT8 m_0a;
179170   UINT8 m_0b;
180   UINT8 m_is_premium;
181171   UINT8 m_sy6545_status;
182172   UINT8 m_sy6545_reg[32];
183173   UINT8 m_sy6545_ind;
184174   UINT8 m_fdc_rq;
185175   UINT8 m_bank_array[33];
186   void mbee256_setup_banks(UINT8 data, bool first_time);
176   void setup_banks(UINT8 data, bool first_time, UINT8 b_mask);
187177   void sy6545_cursor_configure();
188178   void keyboard_matrix_r(int offs);
189179   void machine_reset_common_disk();
r243488r243489
204194   optional_memory_bank m_pak;
205195   optional_memory_bank m_telcom;
206196   optional_memory_bank m_basic;
207   optional_memory_bank m_bankl;
208   optional_memory_bank m_bankh;
209   optional_memory_bank m_bank1;
210   optional_memory_bank m_bank8l;
211   optional_memory_bank m_bank8h;
212   optional_memory_bank m_bank9;
213   optional_memory_bank m_bankfl;
214   optional_memory_bank m_bankfh;
215197   required_ioport m_io_x0;
216198   required_ioport m_io_x1;
217199   required_ioport m_io_x2;
trunk/src/mess/layout/bankshot.lay
r243488r243489
33
44<!-- define elements -->
55
6   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
6   <element name="static_black"><rect><color red="0" green="0" blue="0" /></rect></element>
7   <element name="static_bg"><rect><color red="0.16" green="0.04" blue="0.05" /></rect></element>
8   <element name="disk_bg"><disk><color red="0.16" green="0.04" blue="0.05" /></disk></element>
9   <element name="static_white"><rect><color red="0.9" green="0.9" blue="0.9" /></rect></element>
10   <element name="disk_white"><disk><color red="0.9" green="0.9" blue="0.9" /></disk></element>
711
812   <element name="led" defstate="0">
9      <disk state="1"><color red="1.0" green="0.24" blue="0.26" /></disk>
10      <disk state="0"><color red="0.15" green="0.043" blue="0.047" /></disk>
13      <text string=""></text>
14      <disk state="0">
15         <color red="0.16" green="0.04" blue="0.05" />
16         <bounds x="0.05" y="0.05" width="0.9" height="0.9" />
17      </disk>
18      <disk state="1">
19         <color red="1.0" green="0.24" blue="0.27" />
20         <bounds x="0.05" y="0.05" width="0.9" height="0.9" />
21      </disk>
1122   </element>
1223
1324
25
1426<!-- build screen -->
1527
1628   <view name="Internal Layout">
17      <bounds left="0" right="100" top="0" bottom="100" />
18      <bezel element="static_black">
19         <bounds left="0" right="100" top="0" bottom="100" />
20      </bezel>
29      <bounds left="0" right="17" top="0" bottom="11" />
2130
31   <!-- note: background is dark-red to hide turned-off leds -->
2232
33      <bezel element="static_white"><bounds left="0" right="17" top="0" bottom="11" /></bezel>
34      <bezel element="static_bg"><bounds left="1" right="16" top="1" bottom="10" /></bezel>
35
36   <!-- markings -->
37
38      <bezel element="static_black"><bounds x="3.4" y="0.2" width="0.2" height="0.6" /></bezel>
39      <bezel element="static_black"><bounds x="5.4" y="0.2" width="0.2" height="0.6" /></bezel>
40      <bezel element="static_black"><bounds x="11.4" y="0.2" width="0.2" height="0.6" /></bezel>
41      <bezel element="static_black"><bounds x="13.4" y="0.2" width="0.2" height="0.6" /></bezel>
42
43      <bezel element="static_black"><bounds x="3.4" y="10.2" width="0.2" height="0.6" /></bezel>
44      <bezel element="static_black"><bounds x="5.4" y="10.2" width="0.2" height="0.6" /></bezel>
45      <bezel element="static_black"><bounds x="11.4" y="10.2" width="0.2" height="0.6" /></bezel>
46      <bezel element="static_black"><bounds x="13.4" y="10.2" width="0.2" height="0.6" /></bezel>
47
48      <bezel element="static_black"><bounds x="0.2" y="3.4" width="0.6" height="0.2" /></bezel>
49      <bezel element="static_black"><bounds x="0.2" y="5.4" width="0.6" height="0.2" /></bezel>
50      <bezel element="static_black"><bounds x="0.2" y="7.4" width="0.6" height="0.2" /></bezel>
51
52      <bezel element="static_black"><bounds x="16.2" y="3.4" width="0.6" height="0.2" /></bezel>
53      <bezel element="static_black"><bounds x="16.2" y="5.4" width="0.6" height="0.2" /></bezel>
54      <bezel element="static_black"><bounds x="16.2" y="7.4" width="0.6" height="0.2" /></bezel>
55
56
57   <!-- top hole -->
58
59      <bezel element="disk_bg"><bounds x="7.9" y="-0.1" width="1.2" height="1.2" /></bezel>
60      <bezel element="static_bg"><bounds x="7.9" y="0.5" width="1.2" height="1" /></bezel>
61
62      <bezel element="static_bg"><bounds x="7.3" y="0.4" width="0.7" height="0.7" /></bezel>
63      <bezel element="disk_white"><bounds x="6.7" y="-0.2" width="1.2" height="1.2" /></bezel>
64      <bezel element="static_bg"><bounds x="9.0" y="0.4" width="0.7" height="0.7" /></bezel>
65      <bezel element="disk_white"><bounds x="9.1" y="-0.2" width="1.2" height="1.2" /></bezel>
66
67   <!-- bottom hole -->
68
69      <bezel element="disk_bg"><bounds x="7.9" y="9.9" width="1.2" height="1.2" /></bezel>
70      <bezel element="static_bg"><bounds x="7.9" y="9.6" width="1.2" height="1" /></bezel>
71
72      <bezel element="static_bg"><bounds x="7.3" y="9.9" width="0.7" height="0.7" /></bezel>
73      <bezel element="disk_white"><bounds x="6.7" y="10" width="1.2" height="1.2" /></bezel>
74      <bezel element="static_bg"><bounds x="9.0" y="9.9" width="0.7" height="0.7" /></bezel>
75      <bezel element="disk_white"><bounds x="9.1" y="10" width="1.2" height="1.2" /></bezel>
76
77   <!-- top-left hole -->
78
79      <bezel element="disk_bg"><bounds x="0.10" y="0.10" width="1.2" height="1.2" /></bezel>
80      <bezel element="disk_bg"><bounds x="0.15" y="0.15" width="1.2" height="1.2" /></bezel>
81      <bezel element="disk_bg"><bounds x="0.20" y="0.20" width="1.2" height="1.2" /></bezel>
82      <bezel element="disk_bg"><bounds x="0.25" y="0.25" width="1.2" height="1.2" /></bezel>
83      <bezel element="disk_bg"><bounds x="0.30" y="0.30" width="1.2" height="1.2" /></bezel>
84      <bezel element="disk_bg"><bounds x="0.35" y="0.35" width="1.2" height="1.2" /></bezel>
85      <bezel element="disk_bg"><bounds x="0.40" y="0.40" width="1.2" height="1.2" /></bezel>
86      <bezel element="disk_bg"><bounds x="0.45" y="0.45" width="1.2" height="1.2" /></bezel>
87      <bezel element="disk_bg"><bounds x="0.50" y="0.50" width="1.2" height="1.2" /></bezel>
88      <bezel element="disk_bg"><bounds x="0.55" y="0.55" width="1.2" height="1.2" /></bezel>
89      <bezel element="disk_bg"><bounds x="0.60" y="0.60" width="1.2" height="1.2" /></bezel>
90      <bezel element="disk_bg"><bounds x="0.65" y="0.65" width="1.2" height="1.2" /></bezel>
91      <bezel element="disk_bg"><bounds x="0.70" y="0.70" width="1.2" height="1.2" /></bezel>
92      <bezel element="disk_bg"><bounds x="0.75" y="0.75" width="1.2" height="1.2" /></bezel>
93      <bezel element="disk_bg"><bounds x="0.80" y="0.80" width="1.2" height="1.2" /></bezel>
94      <bezel element="disk_bg"><bounds x="0.85" y="0.85" width="1.2" height="1.2" /></bezel>
95      <bezel element="disk_bg"><bounds x="0.90" y="0.90" width="1.2" height="1.2" /></bezel>
96      <bezel element="disk_bg"><bounds x="0.95" y="0.95" width="1.2" height="1.2" /></bezel>
97      <bezel element="disk_bg"><bounds x="1.00" y="1.00" width="1.2" height="1.2" /></bezel>
98
99   <!-- bottom-left hole -->
100
101      <bezel element="disk_bg"><bounds x="0.10" y="9.70" width="1.2" height="1.2" /></bezel>
102      <bezel element="disk_bg"><bounds x="0.15" y="9.65" width="1.2" height="1.2" /></bezel>
103      <bezel element="disk_bg"><bounds x="0.20" y="9.60" width="1.2" height="1.2" /></bezel>
104      <bezel element="disk_bg"><bounds x="0.25" y="9.55" width="1.2" height="1.2" /></bezel>
105      <bezel element="disk_bg"><bounds x="0.30" y="9.50" width="1.2" height="1.2" /></bezel>
106      <bezel element="disk_bg"><bounds x="0.35" y="9.45" width="1.2" height="1.2" /></bezel>
107      <bezel element="disk_bg"><bounds x="0.40" y="9.40" width="1.2" height="1.2" /></bezel>
108      <bezel element="disk_bg"><bounds x="0.45" y="9.35" width="1.2" height="1.2" /></bezel>
109      <bezel element="disk_bg"><bounds x="0.50" y="9.30" width="1.2" height="1.2" /></bezel>
110      <bezel element="disk_bg"><bounds x="0.55" y="9.25" width="1.2" height="1.2" /></bezel>
111      <bezel element="disk_bg"><bounds x="0.60" y="9.20" width="1.2" height="1.2" /></bezel>
112      <bezel element="disk_bg"><bounds x="0.65" y="9.15" width="1.2" height="1.2" /></bezel>
113      <bezel element="disk_bg"><bounds x="0.70" y="9.10" width="1.2" height="1.2" /></bezel>
114      <bezel element="disk_bg"><bounds x="0.75" y="9.05" width="1.2" height="1.2" /></bezel>
115      <bezel element="disk_bg"><bounds x="0.80" y="9.00" width="1.2" height="1.2" /></bezel>
116      <bezel element="disk_bg"><bounds x="0.85" y="8.95" width="1.2" height="1.2" /></bezel>
117      <bezel element="disk_bg"><bounds x="0.90" y="8.90" width="1.2" height="1.2" /></bezel>
118      <bezel element="disk_bg"><bounds x="0.95" y="8.85" width="1.2" height="1.2" /></bezel>
119      <bezel element="disk_bg"><bounds x="1.00" y="8.80" width="1.2" height="1.2" /></bezel>
120
121   <!-- top-right hole -->
122
123      <bezel element="disk_bg"><bounds x="15.70" y="0.10" width="1.2" height="1.2" /></bezel>
124      <bezel element="disk_bg"><bounds x="15.65" y="0.15" width="1.2" height="1.2" /></bezel>
125      <bezel element="disk_bg"><bounds x="15.60" y="0.20" width="1.2" height="1.2" /></bezel>
126      <bezel element="disk_bg"><bounds x="15.55" y="0.25" width="1.2" height="1.2" /></bezel>
127      <bezel element="disk_bg"><bounds x="15.50" y="0.30" width="1.2" height="1.2" /></bezel>
128      <bezel element="disk_bg"><bounds x="15.45" y="0.35" width="1.2" height="1.2" /></bezel>
129      <bezel element="disk_bg"><bounds x="15.40" y="0.40" width="1.2" height="1.2" /></bezel>
130      <bezel element="disk_bg"><bounds x="15.35" y="0.45" width="1.2" height="1.2" /></bezel>
131      <bezel element="disk_bg"><bounds x="15.30" y="0.50" width="1.2" height="1.2" /></bezel>
132      <bezel element="disk_bg"><bounds x="15.25" y="0.55" width="1.2" height="1.2" /></bezel>
133      <bezel element="disk_bg"><bounds x="15.20" y="0.60" width="1.2" height="1.2" /></bezel>
134      <bezel element="disk_bg"><bounds x="15.15" y="0.65" width="1.2" height="1.2" /></bezel>
135      <bezel element="disk_bg"><bounds x="15.10" y="0.70" width="1.2" height="1.2" /></bezel>
136      <bezel element="disk_bg"><bounds x="15.05" y="0.75" width="1.2" height="1.2" /></bezel>
137      <bezel element="disk_bg"><bounds x="15.00" y="0.80" width="1.2" height="1.2" /></bezel>
138      <bezel element="disk_bg"><bounds x="14.95" y="0.85" width="1.2" height="1.2" /></bezel>
139      <bezel element="disk_bg"><bounds x="14.90" y="0.90" width="1.2" height="1.2" /></bezel>
140      <bezel element="disk_bg"><bounds x="14.85" y="0.95" width="1.2" height="1.2" /></bezel>
141      <bezel element="disk_bg"><bounds x="14.80" y="1.00" width="1.2" height="1.2" /></bezel>
142
143   <!-- bottom-right hole -->
144
145      <bezel element="disk_bg"><bounds x="15.70" y="9.70" width="1.2" height="1.2" /></bezel>
146      <bezel element="disk_bg"><bounds x="15.65" y="9.65" width="1.2" height="1.2" /></bezel>
147      <bezel element="disk_bg"><bounds x="15.60" y="9.60" width="1.2" height="1.2" /></bezel>
148      <bezel element="disk_bg"><bounds x="15.55" y="9.55" width="1.2" height="1.2" /></bezel>
149      <bezel element="disk_bg"><bounds x="15.50" y="9.50" width="1.2" height="1.2" /></bezel>
150      <bezel element="disk_bg"><bounds x="15.45" y="9.45" width="1.2" height="1.2" /></bezel>
151      <bezel element="disk_bg"><bounds x="15.40" y="9.40" width="1.2" height="1.2" /></bezel>
152      <bezel element="disk_bg"><bounds x="15.35" y="9.35" width="1.2" height="1.2" /></bezel>
153      <bezel element="disk_bg"><bounds x="15.30" y="9.30" width="1.2" height="1.2" /></bezel>
154      <bezel element="disk_bg"><bounds x="15.25" y="9.25" width="1.2" height="1.2" /></bezel>
155      <bezel element="disk_bg"><bounds x="15.20" y="9.20" width="1.2" height="1.2" /></bezel>
156      <bezel element="disk_bg"><bounds x="15.15" y="9.15" width="1.2" height="1.2" /></bezel>
157      <bezel element="disk_bg"><bounds x="15.10" y="9.10" width="1.2" height="1.2" /></bezel>
158      <bezel element="disk_bg"><bounds x="15.05" y="9.05" width="1.2" height="1.2" /></bezel>
159      <bezel element="disk_bg"><bounds x="15.00" y="9.00" width="1.2" height="1.2" /></bezel>
160      <bezel element="disk_bg"><bounds x="14.95" y="8.95" width="1.2" height="1.2" /></bezel>
161      <bezel element="disk_bg"><bounds x="14.90" y="8.90" width="1.2" height="1.2" /></bezel>
162      <bezel element="disk_bg"><bounds x="14.85" y="8.85" width="1.2" height="1.2" /></bezel>
163      <bezel element="disk_bg"><bounds x="14.80" y="8.80" width="1.2" height="1.2" /></bezel>
164
165
166   <!-- led matrix -->
167
168      <bezel name="lamp97" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel>
169
170      <bezel name="lamp107" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
171      <bezel name="lamp106" element="led"><bounds x="3" y="1" width="1" height="1" /></bezel>
172      <bezel name="lamp105" element="led"><bounds x="5" y="1" width="1" height="1" /></bezel>
173      <bezel name="lamp104" element="led"><bounds x="7" y="1" width="1" height="1" /></bezel>
174      <bezel name="lamp103" element="led"><bounds x="9" y="1" width="1" height="1" /></bezel>
175      <bezel name="lamp102" element="led"><bounds x="11" y="1" width="1" height="1" /></bezel>
176      <bezel name="lamp101" element="led"><bounds x="13" y="1" width="1" height="1" /></bezel>
177      <bezel name="lamp100" element="led"><bounds x="15" y="1" width="1" height="1" /></bezel>
178
179      <bezel name="lamp96" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel>
180      <bezel name="lamp95" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel>
181      <bezel name="lamp94" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel>
182      <bezel name="lamp93" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel>
183      <bezel name="lamp92" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel>
184      <bezel name="lamp91" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel>
185      <bezel name="lamp90" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel>
186
187      <bezel name="lamp87" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel>
188      <bezel name="lamp86" element="led"><bounds x="3" y="3" width="1" height="1" /></bezel>
189      <bezel name="lamp85" element="led"><bounds x="5" y="3" width="1" height="1" /></bezel>
190      <bezel name="lamp84" element="led"><bounds x="7" y="3" width="1" height="1" /></bezel>
191      <bezel name="lamp83" element="led"><bounds x="9" y="3" width="1" height="1" /></bezel>
192      <bezel name="lamp82" element="led"><bounds x="11" y="3" width="1" height="1" /></bezel>
193      <bezel name="lamp81" element="led"><bounds x="13" y="3" width="1" height="1" /></bezel>
194      <bezel name="lamp80" element="led"><bounds x="15" y="3" width="1" height="1" /></bezel>
195
196      <bezel name="lamp76" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel>
197      <bezel name="lamp75" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel>
198      <bezel name="lamp74" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel>
199      <bezel name="lamp73" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel>
200      <bezel name="lamp72" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel>
201      <bezel name="lamp71" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel>
202      <bezel name="lamp70" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel>
203
204      <bezel name="lamp67" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel>
205      <bezel name="lamp66" element="led"><bounds x="3" y="5" width="1" height="1" /></bezel>
206      <bezel name="lamp65" element="led"><bounds x="5" y="5" width="1" height="1" /></bezel>
207      <bezel name="lamp64" element="led"><bounds x="7" y="5" width="1" height="1" /></bezel>
208      <bezel name="lamp63" element="led"><bounds x="9" y="5" width="1" height="1" /></bezel>
209      <bezel name="lamp62" element="led"><bounds x="11" y="5" width="1" height="1" /></bezel>
210      <bezel name="lamp61" element="led"><bounds x="13" y="5" width="1" height="1" /></bezel>
211      <bezel name="lamp60" element="led"><bounds x="15" y="5" width="1" height="1" /></bezel>
212
213      <bezel name="lamp56" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel>
214      <bezel name="lamp55" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel>
215      <bezel name="lamp54" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel>
216      <bezel name="lamp53" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel>
217      <bezel name="lamp52" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel>
218      <bezel name="lamp51" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel>
219      <bezel name="lamp50" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel>
220
221      <bezel name="lamp47" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel>
222      <bezel name="lamp46" element="led"><bounds x="3" y="7" width="1" height="1" /></bezel>
223      <bezel name="lamp45" element="led"><bounds x="5" y="7" width="1" height="1" /></bezel>
224      <bezel name="lamp44" element="led"><bounds x="7" y="7" width="1" height="1" /></bezel>
225      <bezel name="lamp43" element="led"><bounds x="9" y="7" width="1" height="1" /></bezel>
226      <bezel name="lamp42" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel>
227      <bezel name="lamp41" element="led"><bounds x="13" y="7" width="1" height="1" /></bezel>
228      <bezel name="lamp40" element="led"><bounds x="15" y="7" width="1" height="1" /></bezel>
229
230      <bezel name="lamp36" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel>
231      <bezel name="lamp35" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel>
232      <bezel name="lamp34" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel>
233      <bezel name="lamp33" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel>
234      <bezel name="lamp32" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel>
235      <bezel name="lamp31" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel>
236      <bezel name="lamp30" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel>
237
238      <bezel name="lamp27" element="led"><bounds x="1" y="9" width="1" height="1" /></bezel>
239      <bezel name="lamp26" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel>
240      <bezel name="lamp25" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel>
241      <bezel name="lamp24" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel>
242      <bezel name="lamp23" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel>
243      <bezel name="lamp22" element="led"><bounds x="11" y="9" width="1" height="1" /></bezel>
244      <bezel name="lamp21" element="led"><bounds x="13" y="9" width="1" height="1" /></bezel>
245      <bezel name="lamp20" element="led"><bounds x="15" y="9" width="1" height="1" /></bezel>
246
247      <bezel name="lamp37" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
248
249
23250   </view>
24251</mamelayout>
trunk/src/mess/machine/kaypro.c
r243488r243489
110110   if (!BIT(data, 0))
111111      m_floppy = m_floppy0->get_device();
112112   else
113   if (!BIT(data, 1))
113   if (m_floppy1 && (!BIT(data, 1)))
114114      m_floppy = m_floppy1->get_device();
115115
116116   m_fdc->set_floppy(m_floppy);
trunk/src/mess/machine/mbee.c
r243488r243489
272272    and (output = 22,21,20,19,18,17,16,15). The prom is also used to control
273273    the refresh required by the dynamic rams, however we ignore this function.
274274
275    b_mask = total dynamic ram (1=64k; 3=128k; 7=256k)
276
275277************************************************************/
276278
277void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
279void mbee_state::setup_banks(UINT8 data, bool first_time, UINT8 b_mask)
278280{
279   // (bits 0-5 are referred to as S0-S5)
281   data &= 0x3f; // (bits 0-5 are referred to as S0-S5)
280282   address_space &mem = m_maincpu->space(AS_PROGRAM);
281   UINT8 *prom = memregion("proms")->base();
283   UINT8 *prom = memregion("pals")->base();
282284   UINT8 b_data = BITSWAP8(data, 7,5,3,2,4,6,1,0) & 0x3b; // arrange data bits to S0,S1,-,S4,S2,S3
283285   UINT8 b_bank, b_byte, b_byte_t, b_addr, p_bank = 1;
284286   UINT16 b_vid;
r243488r243489
309311            if (!BIT(b_byte, 4))
310312            {
311313               // select video
312               mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
313               mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
314               if (m_is_premium)
315               {
316                  mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
317                  mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
318               }
319               else
320               {
321                  mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbee_low_r), this));
322                  mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeic_high_r), this));
323               }
314324            }
315325            else
316326            {
r243488r243489
320330               if (!BIT(b_byte, 3))
321331                  membank(banktag)->set_entry(64 + (b_bank & 3)); // read from rom
322332               else
323                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
333                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
324334            }
325335         }
326336         p_bank++;
r243488r243489
341351            if (!BIT(b_byte, 4))
342352            {
343353               // select video
344               mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
345               mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
354               if (m_is_premium)
355               {
356                  mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
357                  mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
358               }
359               else
360               {
361                  mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbee_low_w), this));
362                  mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeic_high_w), this));
363               }
346364            }
347365            else
348366            {
r243488r243489
352370               if (!BIT(b_byte, 3))
353371                  membank(banktag)->set_entry(64); // write to rom dummy area
354372               else
355                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
373                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
356374            }
357375         }
358376         p_bank++;
r243488r243489
362380
363381WRITE8_MEMBER( mbee_state::mbee256_50_w )
364382{
365   mbee256_setup_banks(data & 0x3f, 0);
383   setup_banks(data, 0, 7);
366384}
367385
368386/***********************************************************
r243488r243489
380398
381399WRITE8_MEMBER( mbee_state::mbee128_50_w )
382400{
383   mbee256_setup_banks(data & 0x1f, 0); // S5 not used
401   setup_banks(data, 0, 3);
384402}
385403
386
387404/***********************************************************
388405
389    64k Memory Banking
390
391    Bit 2 disables ROM, replacing it with RAM.
392
393    Due to lack of documentation, it is not possible to know
394    if other bits are used.
395
396************************************************************/
397
398WRITE8_MEMBER( mbee_state::mbee64_50_w )
399{
400   if BIT(data, 2)
401   {
402      m_boot->set_entry(0);
403      m_bankl->set_entry(0);
404      m_bankh->set_entry(0);
405   }
406   else
407   {
408      m_bankl->set_entry(1);
409      m_bankh->set_entry(1);
410   }
411}
412
413
414/***********************************************************
415
416406    ROM Banking on older models
417407
418408    Set A to 0 or 1 then read the port to switch between the
r243488r243489
489479   timer_set(attotime::from_usec(4), TIMER_MBEE_RESET);
490480}
491481
492MACHINE_RESET_MEMBER( mbee_state, mbee64 )
493{
494   machine_reset_common_disk();
495   m_boot->set_entry(1);
496   m_bankl->set_entry(1);
497   m_bankh->set_entry(1);
498}
499
500482MACHINE_RESET_MEMBER( mbee_state, mbee128 )
501483{
502484   machine_reset_common_disk();
503   mbee256_setup_banks(0, 1); // set banks to default
485   setup_banks(0, 1, 3); // set banks to default
504486   m_maincpu->set_pc(0x8000);
505487}
506488
r243488r243489
510492   for (i = 0; i < 15; i++) m_mbee256_was_pressed[i] = 0;
511493   m_mbee256_q_pos = 0;
512494   machine_reset_common_disk();
513   mbee256_setup_banks(0, 1); // set banks to default
495   setup_banks(0, 1, 7); // set banks to default
514496   m_maincpu->set_pc(0x8000);
515497}
516498
r243488r243489
625607   m_size = 0xe000;
626608}
627609
628DRIVER_INIT_MEMBER( mbee_state, mbee64 )
629{
630   UINT8 *RAM = memregion("maincpu")->base();
631   m_boot->configure_entry(0, &RAM[0x0000]);
632   m_bankl->configure_entry(0, &RAM[0x1000]);
633   m_bankl->configure_entry(1, &RAM[0x9000]);
634   m_bankh->configure_entry(0, &RAM[0x8000]);
635
636   RAM = memregion("bootrom")->base();
637   m_bankh->configure_entry(1, &RAM[0x0000]);
638   m_boot->configure_entry(1, &RAM[0x0000]);
639
640   m_size = 0xf000;
641}
642
643610DRIVER_INIT_MEMBER( mbee_state, mbee128 )
644611{
645612   UINT8 *RAM = memregion("rams")->base();
r243488r243489
656623      membank(banktag)->configure_entries(0, 32, &RAM[0x0000], 0x1000); // RAM banks
657624      membank(banktag)->configure_entries(64, 1, &ROM[0x4000], 0x1000); // dummy rom
658625   }
659
660   m_size = 0x8000;
626   m_size = 0xf000;
661627}
662628
663629DRIVER_INIT_MEMBER( mbee_state, mbee256 )
trunk/src/mess/mess.lst
r243488r243489
12161216mbeeppc // Microbee 32 PPC85
12171217mbeett  // Microbee Teleterm
12181218mbee56  // Microbee 56K (CP/M)
1219mbee64  // Microbee 64K (CP/M)
1220mbee128 // Microbee 128K (CP/M)
1219mbee128 // Microbee 128K standard (CP/M)
1220mbee128p // Microbee 128K premium (CP/M)
12211221mbee256 // Microbee 256TC (CP/M)
12221222
12231223// Tandy / Radio Shack
r243488r243489
23902390cgc7900
23912391hr16
23922392hr16b
2393mmt8
23932394sr16
23942395vidbrain
23952396cd2650
trunk/src/mess/mess.mak
r243488r243489
940940   $(MAME_VIDEO)/vectrex.o     \
941941   $(MAME_DRIVERS)/cps1.o      \
942942   $(MAME_VIDEO)/cps1.o        \
943   $(MAME_VIDEO)/scn2674.o     \
943944
944945
945946#-------------------------------------------------
trunk/src/mess/video/mbee.c
r243488r243489
346346         memcpy(m_p_gfxram, memregion("gfx")->base() + (((data & 0x30) == 0x20) << 11), 0x800);
347347      break;
348348   case 31:
349            /* This firstly pushes the contents of the transparent registers onto the MA lines,
350            then increments the address, then sets update strobe on. */
349      /* This firstly pushes the contents of the transparent registers onto the MA lines,
350      then increments the address, then sets update strobe on. */
351351      addr = (m_sy6545_reg[18] << 8) | m_sy6545_reg[19];
352352      keyboard_matrix_r(addr);
353353      m_sy6545_reg[19]++;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team