Previous 199869 Revisions Next

r20583 Monday 28th January, 2013 at 15:00:44 UTC by Curt Coder
(MESS) Tagmap lookup cleanup. (nw)
[src/mess/drivers]abc80x.c adam.c aquarius.c atarist.c atom.c beta.c bw12.c c64.c comx35.c cosmicos.c crvision.c elf.c eti660.c exp85.c huebler.c kyocera.c lc80.c m5.c mc1000.c mpf1.c newbrain.c pc8001.c pc8401a.c poly880.c prof80.c ql.c sg1000.c super6.c tek405x.c tiki100.c tmc1800.c v1050.c vcs80.c vic20.c vidbrain.c vip.c vixen.c wangpc.c xerox820.c xor100.c
[src/mess/includes]abc80x.h adam.h aquarius.h atarist.h atom.h beta.h bw12.h c64.h cgc7900.h comx35.h cosmicos.h crvision.h elf.h eti660.h exp85.h huebler.h kyocera.h lc80.h m5.h mc1000.h mpf1.h newbrain.h pc8001.h pc8401a.h phc25.h poly880.h prof80.h ql.h sg1000.h super6.h tek405x.h tiki100.h tmc1800.h tmc600.h v1050.h vcs80.h vidbrain.h vip.h vixen.h wangpc.h xerox820.h xor100.h
[src/mess/machine]abc77.c abc77.h abc_dos.c abc_dos.h abc_fd2.c abc_fd2.h abc_sio.c abc_sio.h apricotkb.c apricotkb.h bw2_ramcard.c bw2_ramcard.h c1541.c c1541.h c2040.c c2040.h c64_16kb.c c64_16kb.h c64_dela_ep256.c c64_dela_ep256.h c64_dela_ep64.c c64_dela_ep64.h c64_dela_ep7x8.c c64_dela_ep7x8.h c64_ide64.c c64_ide64.h c64_rex_ep256.c c64_rex_ep256.h c64_sw8k.c c64_sw8k.h c64_xl80.c c64_xl80.h comx_clm.c comx_clm.h comx_eb.c comx_eb.h comx_epr.c comx_epr.h comx_fd.c comx_fd.h comx_prn.c comx_prn.h comx_thm.c comx_thm.h comxpl80.c comxpl80.h e01.c e01.h ecb_grip.c ecb_grip.h ecbbus.c ecbbus.h lux21046.c lux4105.c lux4105.h vp590.c vp700.c vp700.h
[src/mess/video]cgc7900.c newbrain.c tmc600.c

trunk/src/mess/machine/comx_clm.c
r20582r20583
104104   {
105105      UINT8 code = m_video_ram[((ma + column) & 0x7ff)];
106106      UINT16 addr = (code << 3) | (ra & 0x07);
107      UINT8 data = m_char_rom[addr & 0x7ff];
107      UINT8 data = m_char_rom->base()[addr & 0x7ff];
108108
109109      if (BIT(ra, 3) && column == cursor_x)
110110      {
r20582r20583
196196   device_t(mconfig, COMX_CLM, "COMX 80 Column Card", tag, owner, clock),
197197   device_comx_expansion_card_interface(mconfig, *this),
198198   m_crtc(*this, MC6845_TAG),
199   m_rom(*this, "c000"),
200   m_char_rom(*this, MC6845_TAG),
199201   m_video_ram(*this, "video_ram")
200202{
201203}
r20582r20583
207209
208210void comx_clm_device::device_start()
209211{
210   // find memory regions
211   m_rom = memregion("c000")->base();
212   m_char_rom = memregion(MC6845_TAG)->base();
213
214212   // allocate memory
215213   m_video_ram.allocate(VIDEORAM_SIZE);
216214
r20582r20583
248246
249247   if (offset >= 0xc000 && offset < 0xc800)
250248   {
251      data = m_rom[offset & 0x7ff];
249      data = m_rom->base()[offset & 0x7ff];
252250   }
253251   else if (offset >= 0xd000 && offset < 0xd800)
254252   {
trunk/src/mess/machine/c64_dela_ep256.c
r20582r20583
2323//-------------------------------------------------
2424
2525ROM_START( c64_dela_ep256 )
26   ROM_REGION( 0x40000, "rom", 0 )
26   ROM_REGION( 0x40000, "eprom", 0 )
2727   ROM_CART_LOAD( "rom1", 0x00000, 0x08000, ROM_MIRROR )
2828   ROM_CART_LOAD( "rom2", 0x08000, 0x08000, ROM_MIRROR )
2929   ROM_CART_LOAD( "rom3", 0x10000, 0x08000, ROM_MIRROR )
r20582r20583
9191
9292c64_dela_ep256_cartridge_device::c64_dela_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
9393   device_t(mconfig, C64_DELA_EP256, "C64 Dela 256KB EPROM cartridge", tag, owner, clock),
94   device_c64_expansion_card_interface(mconfig, *this)
94   device_c64_expansion_card_interface(mconfig, *this),
95   m_eprom(*this, "eprom")
9596{
9697}
9798
r20582r20583
102103
103104void c64_dela_ep256_cartridge_device::device_start()
104105{
105   m_rom = memregion("rom")->base();
106
107106   // state saving
108107   save_item(NAME(m_bank));
109108   save_item(NAME(m_reset));
r20582r20583
137136      else
138137      {
139138         offs_t addr = (m_bank << 13) | (offset & 0x1fff);
140         data = m_rom[addr];
139         data = m_eprom->base()[addr];
141140      }
142141   }
143142
trunk/src/mess/machine/comx_clm.h
r20582r20583
5252
5353private:
5454   required_device<mc6845_device> m_crtc;
55   required_memory_region m_rom;
56   required_memory_region m_char_rom;
5557   optional_shared_ptr<UINT8> m_video_ram;
56
57   UINT8 *m_rom;           // program ROM
58   UINT8 *m_char_rom;      // character ROM
5958};
6059
6160
trunk/src/mess/machine/c64_dela_ep256.h
r20582r20583
4747   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
4848
4949private:
50   UINT8 *m_rom;
50   required_memory_region m_eprom;
5151
5252   UINT8 m_bank;
5353   int m_reset;
trunk/src/mess/machine/comxpl80.c
r20582r20583
161161
162162comx_pl80_device::comx_pl80_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
163163   : device_t(mconfig, COMX_PL80, "COMX PL-80", tag, owner, clock),
164      device_centronics_peripheral_interface(mconfig, *this)
164      device_centronics_peripheral_interface(mconfig, *this),
165      m_plotter(*this, "PLOTTER"),
166      m_font(*this, "FONT"),
167      m_sw(*this, "SW")
165168{
166169}
167170
r20582r20583
225228   else
226229   {
227230      // read data from font ROM
228      int font_rom = (ioport("FONT")->read() & 0x03) * 0x2000;
231      int font_rom = (m_font->read() & 0x03) * 0x2000;
229232
230      m_plotter_data = memregion("gfx2")->base()[font_rom | m_font_addr];
233      m_plotter_data = m_plotter->base()[font_rom | m_font_addr];
231234   }
232235
233236   if (!BIT(data, 6))
r20582r20583
239242   if (BIT(data, 7))
240243   {
241244      // read switches
242      m_plotter_data = ioport("SW")->read();
245      m_plotter_data = m_sw->read();
243246   }
244247}
245248
trunk/src/mess/machine/comxpl80.h
r20582r20583
4949   virtual void device_reset();
5050
5151private:
52   required_memory_region m_plotter;
53   required_ioport m_font;
54   required_ioport m_sw;
55   
5256   // PL-80 plotter state
5357   UINT16 m_font_addr;         // font ROM pack address latch
5458   UINT8 m_x_motor_phase;      // X motor phase
trunk/src/mess/machine/abc_dos.c
r20582r20583
107107
108108abc_dos_device::abc_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
109109   : device_t(mconfig, ABC_DOS, "ABC DOS", tag, owner, clock),
110      device_abcbus_card_interface(mconfig, *this)
110      device_abcbus_card_interface(mconfig, *this),
111      m_rom(*this, "dos")
111112{
112113}
113114
r20582r20583
136137
137138   if (offset >= 0x6000 && offset < 0x8000)
138139   {
139      data = memregion("dos")->base()[offset & 0x1fff];
140      data = m_rom->base()[offset & 0x1fff];
140141   }
141142
142143   return data;
trunk/src/mess/machine/abc_dos.h
r20582r20583
4242   // device_abcbus_interface overrides
4343   virtual void abcbus_cs(UINT8 data) { };
4444   virtual UINT8 abcbus_xmemfl(offs_t offset);
45
46private:
47   required_memory_region m_rom;
4548};
4649
4750
trunk/src/mess/machine/c64_dela_ep64.c
r20582r20583
7272
7373c64_dela_ep64_cartridge_device::c64_dela_ep64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
7474   device_t(mconfig, C64_DELA_EP64, "C64 Rex 64KB EPROM cartridge", tag, owner, clock),
75   device_c64_expansion_card_interface(mconfig, *this)
75   device_c64_expansion_card_interface(mconfig, *this),
76   m_eprom(*this, "eprom")
7677{
7778}
7879
r20582r20583
8384
8485void c64_dela_ep64_cartridge_device::device_start()
8586{
86   m_rom = memregion("rom")->base();
87
8887   // state saving
8988   save_item(NAME(m_bank));
9089   save_item(NAME(m_reset));
r20582r20583
123122         offs_t addr = (m_bank << 13) | (offset & 0x1fff);
124123
125124         if (!m_rom0_ce) data |= m_roml[offset & 0x1fff];
126         if (!m_rom1_ce) data |= m_rom[0x0000 + addr];
127         if (!m_rom2_ce) data |= m_rom[0x8000 + addr];
125         if (!m_rom1_ce) data |= m_eprom->base()[0x0000 + addr];
126         if (!m_rom2_ce) data |= m_eprom->base()[0x8000 + addr];
128127      }
129128   }
130129
trunk/src/mess/machine/c64_dela_ep64.h
r20582r20583
4747   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
4848
4949private:
50   UINT8 *m_rom;
50   required_memory_region m_eprom;
5151
5252   UINT8 m_bank;
5353   int m_reset;
trunk/src/mess/machine/c64_sw8k.c
r20582r20583
7474
7575c64_switchable_8k_cartridge_device::c64_switchable_8k_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
7676   device_t(mconfig, C64_SW8K, "C64 Switchable 8K cartridge", tag, owner, clock),
77   device_c64_expansion_card_interface(mconfig, *this)
77   device_c64_expansion_card_interface(mconfig, *this),
78    m_sw(*this, "SW")
7879{
7980}
8081
r20582r20583
9495
9596void c64_switchable_8k_cartridge_device::device_reset()
9697{
97   m_bank = ioport("SW")->read();
98   m_bank = m_sw->read();
9899}
99100
100101
trunk/src/mess/machine/c64_sw8k.h
r20582r20583
4444   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
4545
4646private:
47   required_ioport m_sw;
48   
4749   int m_bank;
4850};
4951
trunk/src/mess/machine/c64_rex_ep256.c
r20582r20583
2323//-------------------------------------------------
2424
2525ROM_START( c64_rex_ep256 )
26   ROM_REGION( 0x40000, "rom", 0 )
26   ROM_REGION( 0x40000, "eprom", 0 )
2727   ROM_CART_LOAD( "rom1", 0x00000, 0x08000, ROM_MIRROR )
2828   ROM_CART_LOAD( "rom2", 0x08000, 0x08000, ROM_MIRROR )
2929   ROM_CART_LOAD( "rom3", 0x10000, 0x08000, ROM_MIRROR )
r20582r20583
9191
9292c64_rex_ep256_cartridge_device::c64_rex_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
9393   device_t(mconfig, C64_REX_EP256, "C64 Rex 256KB EPROM cartridge", tag, owner, clock),
94   device_c64_expansion_card_interface(mconfig, *this)
94   device_c64_expansion_card_interface(mconfig, *this),
95   m_eprom(*this, "eprom")
9596{
9697}
9798
r20582r20583
102103
103104void c64_rex_ep256_cartridge_device::device_start()
104105{
105   m_rom = memregion("rom")->base();
106
107106   // state saving
108107   save_item(NAME(m_bank));
109108   save_item(NAME(m_reset));
r20582r20583
137136      else
138137      {
139138         offs_t addr = (m_bank << 13) | (offset & 0x1fff);
140         data = m_rom[addr];
139         data = m_eprom->base()[addr];
141140      }
142141   }
143142   else if (!io2)
trunk/src/mess/machine/abc_sio.c
r20582r20583
142142   : device_t(mconfig, ABC_SIO, "ABC SIO", tag, owner, clock),
143143      device_abcbus_card_interface(mconfig, *this),
144144      m_ctc(*this, Z80CTC_TAG),
145      m_sio(*this, Z80SIO_TAG)
145      m_sio(*this, Z80SIO_TAG),
146      m_rom(*this, "abc80")
146147{
147148}
148149
r20582r20583
189190
190191   if (offset >= 0x4000 && offset < 0x5000) // TODO where is this mapped?
191192   {
192      data = memregion("abc80")->base()[offset & 0xfff];
193      data = m_rom->base()[offset & 0xfff];
193194   }
194195
195196   return data;
trunk/src/mess/machine/c64_rex_ep256.h
r20582r20583
4747   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
4848
4949private:
50   UINT8 *m_rom;
50   required_memory_region m_eprom;
5151
5252   UINT8 m_bank;
5353   int m_reset;
trunk/src/mess/machine/abc_sio.h
r20582r20583
4141private:
4242   required_device<z80ctc_device> m_ctc;
4343   required_device<z80dart_device> m_sio;
44
44   required_memory_region m_rom;
4545};
4646
4747
trunk/src/mess/machine/c64_dela_ep7x8.c
r20582r20583
2323//-------------------------------------------------
2424
2525ROM_START( c64_dela_ep7x8 )
26   ROM_REGION( 0x10000, "rom", 0 )
26   ROM_REGION( 0x10000, "eprom", 0 )
2727   ROM_CART_LOAD( "rom1", 0x2000, 0x2000, ROM_MIRROR )
2828   ROM_CART_LOAD( "rom2", 0x4000, 0x2000, ROM_MIRROR )
2929   ROM_CART_LOAD( "rom3", 0x6000, 0x2000, ROM_MIRROR )
r20582r20583
8787
8888c64_dela_ep7x8_cartridge_device::c64_dela_ep7x8_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
8989   device_t(mconfig, C64_DELA_EP7X8, "C64 Dela 7x8KB EPROM cartridge", tag, owner, clock),
90   device_c64_expansion_card_interface(mconfig, *this)
90   device_c64_expansion_card_interface(mconfig, *this),
91   m_eprom(*this, "eprom")
9192{
9293}
9394
r20582r20583
9899
99100void c64_dela_ep7x8_cartridge_device::device_start()
100101{
101   m_rom = memregion("rom")->base();
102
103102   // state saving
104103   save_item(NAME(m_bank));
105104}
r20582r20583
127126      offs_t addr = offset & 0x1fff;
128127
129128      if (!BIT(m_bank, 0)) data |= m_roml[addr];
130      if (!BIT(m_bank, 1)) data |= m_rom[0x2000 + addr];
131      if (!BIT(m_bank, 2)) data |= m_rom[0x4000 + addr];
132      if (!BIT(m_bank, 3)) data |= m_rom[0x6000 + addr];
133      if (!BIT(m_bank, 4)) data |= m_rom[0x8000 + addr];
134      if (!BIT(m_bank, 5)) data |= m_rom[0xa000 + addr];
135      if (!BIT(m_bank, 6)) data |= m_rom[0xc000 + addr];
136      if (!BIT(m_bank, 7)) data |= m_rom[0xe000 + addr];
129      if (!BIT(m_bank, 1)) data |= m_eprom->base()[0x2000 + addr];
130      if (!BIT(m_bank, 2)) data |= m_eprom->base()[0x4000 + addr];
131      if (!BIT(m_bank, 3)) data |= m_eprom->base()[0x6000 + addr];
132      if (!BIT(m_bank, 4)) data |= m_eprom->base()[0x8000 + addr];
133      if (!BIT(m_bank, 5)) data |= m_eprom->base()[0xa000 + addr];
134      if (!BIT(m_bank, 6)) data |= m_eprom->base()[0xc000 + addr];
135      if (!BIT(m_bank, 7)) data |= m_eprom->base()[0xe000 + addr];
137136   }
138137
139138   return data;
trunk/src/mess/machine/abc_fd2.c
r20582r20583
179179      m_pio(*this, Z80PIO_TAG),
180180      m_fdc(*this, FD1771_TAG),
181181      m_floppy0(*this, FD1771_TAG":0"),
182      m_floppy1(*this, FD1771_TAG":1")
182      m_floppy1(*this, FD1771_TAG":1"),
183      m_rom(*this, "dos")
183184{
184185}
185186
r20582r20583
226227
227228   if (offset >= 0x6000 && offset < 0x6400) // TODO is this mirrored?
228229   {
229      data = memregion("abc80")->base()[offset & 0x3ff];
230      data = m_rom->base()[offset & 0x3ff];
230231   }
231232
232233   return data;
trunk/src/mess/machine/c64_dela_ep7x8.h
r20582r20583
4747   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
4848
4949private:
50   UINT8 *m_rom;
50   required_memory_region m_eprom;
5151
5252   UINT8 m_bank;
5353};
trunk/src/mess/machine/abc_fd2.h
r20582r20583
5555   required_device<fd1771_t> m_fdc;
5656   required_device<floppy_connector> m_floppy0;
5757   required_device<floppy_connector> m_floppy1;
58   required_memory_region m_rom;
5859};
5960
6061
trunk/src/mess/machine/abc77.c
r20582r20583
460460      m_x9(*this, "X9"),
461461      m_x10(*this, "X10"),
462462      m_x11(*this, "X11"),
463      m_dsw(*this, "DSW"),
463464      m_txd(1),
464465      m_keydown(1),
465466      m_clock(0),
r20582r20583
483484      m_x9(*this, "X9"),
484485      m_x10(*this, "X10"),
485486      m_x11(*this, "X11"),
487      m_dsw(*this, "DSW"),
486488      m_txd(1),
487489      m_keydown(1),
488490      m_clock(0),
r20582r20583
519521void abc77_device::device_reset()
520522{
521523   int t = 1.1 * RES_K(100) * CAP_N(100) * 1000; // t = 1.1 * R1 * C1
522   int ea = BIT(ioport("DSW")->read(), 7);
524   int ea = BIT(m_dsw->read(), 7);
523525
524526   // trigger reset
525527   m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
trunk/src/mess/machine/abc77.h
r20582r20583
118118   required_ioport m_x9;
119119   required_ioport m_x10;
120120   required_ioport m_x11;
121   required_ioport m_dsw;
121122
122123   int m_txd;                      // transmit data
123124   int m_keylatch;                 // keyboard row latch
trunk/src/mess/machine/ecbbus.c
r20582r20583
109109device_ecbbus_card_interface::device_ecbbus_card_interface(const machine_config &mconfig, device_t &device)
110110   : device_slot_card_interface(mconfig, device)
111111{
112   m_slot = dynamic_cast<ecbbus_slot_device *>(device.owner());
112113}
113114
114115
trunk/src/mess/machine/ecbbus.h
r20582r20583
154154   virtual void ecbbus_io_w(offs_t offset, UINT8 data) { };
155155
156156public:
157   ecbbus_device  *m_ecb;
157   ecbbus_slot_device  *m_slot;
158158};
159159
160160#endif
trunk/src/mess/machine/vp590.c
r20582r20583
1616//**************************************************************************
1717
1818#define CDP1862_TAG     "u2"
19#define SCREEN_TAG      ":screen"
19#define SCREEN_TAG      ":screen" // hijack the VIP's screen since the CDP1861 chip would be removed from the PCB on real hardware
2020
2121#define COLOR_RAM_SIZE  0x100
2222
trunk/src/mess/machine/comx_prn.c
r20582r20583
9292comx_prn_device::comx_prn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
9393   device_t(mconfig, COMX_PRN, "COMX-35 Printer Card", tag, owner, clock),
9494   device_comx_expansion_card_interface(mconfig, *this),
95   m_centronics(*this, CENTRONICS_TAG)
95   m_centronics(*this, CENTRONICS_TAG),
96   m_rom(*this, "c000")
9697{
9798}
9899
r20582r20583
103104
104105void comx_prn_device::device_start()
105106{
106   m_rom = memregion("c000")->base();
107107}
108108
109109
r20582r20583
126126
127127   if (offset >= 0xc000 && offset < 0xe000)
128128   {
129      data = m_rom[offset & 0x1fff];
129      data = m_rom->base()[offset & 0x1fff];
130130   }
131131
132132   return data;
trunk/src/mess/machine/comx_prn.h
r20582r20583
5050
5151private:
5252   required_device<centronics_device> m_centronics;
53
54   UINT8 *m_rom;               // program ROM
53   required_memory_region m_rom;
5554};
5655
5756
trunk/src/mess/machine/c1541.c
r20582r20583
10911091c1541_prologic_dos_classic_device::c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10921092   : base_c1541_device(mconfig, C1541_PROLOGIC_DOS_CLASSIC, "C1541 ProLogic-DOS Classic", tag, owner, clock, TYPE_1541_PROLOGIC_DOS_CLASSIC),
10931093      m_pia(*this, MC6821_TAG),
1094      m_centronics(*this, CENTRONICS_TAG)
1094      m_centronics(*this, CENTRONICS_TAG),
1095      m_mmu_rom(*this, "mmu")
10951096{
10961097}
10971098
r20582r20583
11261127   }
11271128}
11281129
1129void c1541_prologic_dos_classic_device::device_start()
1130{
1131   // find memory regions
1132   m_mmu_rom = memregion("mmu")->base();
1133}
11341130
1135
11361131//-------------------------------------------------
11371132//  device_reset - device-specific reset
11381133//-------------------------------------------------
trunk/src/mess/machine/c1541.h
r20582r20583
219219   // construction/destruction
220220   c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
221221
222   // device-level overrides
223   virtual void device_start();
224
225222   // not really public
226223   DECLARE_READ8_MEMBER( read );
227224   DECLARE_WRITE8_MEMBER( write );
r20582r20583
236233protected:
237234   required_device<pia6821_device> m_pia;
238235   required_device<centronics_device> m_centronics;
239
240   UINT8 *m_mmu_rom;
236   required_memory_region m_mmu_rom;
241237};
242238
243239
trunk/src/mess/machine/ecb_grip.c
r20582r20583
673673   m_crtc(*this, MC6845_TAG),
674674   m_centronics(*this, CENTRONICS_TAG),
675675   m_speaker(*this, SPEAKER_TAG),
676   m_video_ram(*this, "video_ram")
676   m_video_ram(*this, "video_ram"),
677   m_j3a(*this, "J3A"),
678   m_j3b(*this, "J3B"),
679   m_j7(*this, "J7")
677680{
678681}
679682
r20582r20583
683686
684687void grip_device::device_start()
685688{
686   m_ecb = machine().device<ecbbus_device>(ECBBUS_TAG);
687
688689   // allocate video RAM
689690   m_video_ram.allocate(VIDEORAM_SIZE);
690691
r20582r20583
726727
727728void grip_device::device_reset()
728729{
729   m_base = ioport("J7")->read();
730   m_base = m_j7->read();
730731}
731732
732733
r20582r20583
797798   int js0 = 0, js1 = 0;
798799
799800   // JS0
800   switch (ioport("J3A")->read())
801   switch (m_j3a->read())
801802   {
802803   case 0: js0 = 0; break;
803804   case 1: js0 = 1; break;
r20582r20583
809810   data |= js0 << 4;
810811
811812   // JS1
812   switch (ioport("J3B")->read())
813   switch (m_j3b->read())
813814   {
814815   case 0: js1 = 0; break;
815816   case 1: js1 = 1; break;
trunk/src/mess/machine/ecb_grip.h
r20582r20583
8080   required_device<mc6845_device> m_crtc;
8181   required_device<centronics_device> m_centronics;
8282   required_device<speaker_sound_device> m_speaker;
83   optional_shared_ptr<UINT8> m_video_ram;
84   required_ioport m_j3a;
85   required_ioport m_j3b;
86   required_ioport m_j7;
8387
8488   // sound state
8589   int m_vol0;
r20582r20583
9296   int m_kbf;              // keyboard buffer full
9397
9498   // video state
95   optional_shared_ptr<UINT8> m_video_ram;     // video RAM
9699   int m_lps;              // light pen sense
97100   int m_page;             // video page
98101   int m_flash;            // flash
trunk/src/mess/machine/comx_eb.c
r20582r20583
202202comx_eb_device::comx_eb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
203203   device_t(mconfig, COMX_EB, "COMX-35E Expansion Box", tag, owner, clock),
204204   device_comx_expansion_card_interface(mconfig, *this),
205   m_rom(*this, "e000"),
205206   m_select(0)
206207{
207208}
r20582r20583
222223   {
223224      m_int[slot] = CLEAR_LINE;
224225   }
225
226   m_rom = memregion("e000")->base();
227226}
228227
229228
r20582r20583
290289
291290   if (offset >= 0x1000 && offset < 0x1800)
292291   {
293      data = m_rom[offset & 0x7ff];
292      data = m_rom->base()[offset & 0x7ff];
294293      *extrom = 0;
295294   }
296295   else if (offset >= 0xe000 && offset < 0xf000)
297296   {
298      data = m_rom[offset & 0xfff];
297      data = m_rom->base()[offset & 0xfff];
299298   }
300299   else
301300   {
trunk/src/mess/machine/comx_eb.h
r20582r20583
6868   virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data);
6969
7070private:
71   UINT8 *m_rom;               // program ROM
71   required_memory_region m_rom;
7272
7373   comx_expansion_slot_device  *m_expansion_slot[MAX_EB_SLOTS];
7474   int m_int[MAX_EB_SLOTS];
trunk/src/mess/machine/vp700.c
r20582r20583
4848
4949vp700_device::vp700_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
5050   device_t(mconfig, VP700, "VP700", tag, owner, clock),
51   device_vip_expansion_card_interface(mconfig, *this)
51   device_vip_expansion_card_interface(mconfig, *this),
52   m_rom(*this, "vp700")
5253{
5354}
5455
r20582r20583
5960
6061void vp700_device::device_start()
6162{
62   // find memory regions
63   m_rom = memregion("vp700")->base();
6463}
6564
6665
r20582r20583
7675   {
7776      *minh = 1;
7877
79      data = m_rom[offset & 0xfff];
78      data = m_rom->base()[offset & 0xfff];
8079   }
8180
8281   return data;
trunk/src/mess/machine/vp700.h
r20582r20583
4343   virtual UINT8 vip_program_r(address_space &space, offs_t offset, int cs, int cdef, int *minh);
4444
4545private:
46   const UINT8 *m_rom;
46   required_memory_region m_rom;
4747};
4848
4949
trunk/src/mess/machine/bw2_ramcard.c
r20582r20583
5050bw2_ramcard_device::bw2_ramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
5151   : device_t(mconfig, BW2_RAMCARD, "RAMCARD", tag, owner, clock),
5252      device_bw2_expansion_slot_interface(mconfig, *this),
53      m_rom(*this, "ramcard"),
5354      m_ram(*this, "ram"),
5455      m_en(0),
5556      m_bank(0)
r20582r20583
6364
6465void bw2_ramcard_device::device_start()
6566{
66   // find memory regions
67   m_rom = memregion("ramcard")->base();
68
6967   // allocate memory
7068   m_ram.allocate(512 * 1024);
7169
r20582r20583
9492{
9593   if (!ram2)
9694   {
97      data = m_rom[offset & 0x3fff];
95      data = m_rom->base()[offset & 0x3fff];
9896   }
9997   else if (m_en && !ram5)
10098   {
trunk/src/mess/machine/bw2_ramcard.h
r20582r20583
4545   virtual void bw2_slot_w(address_space &space, offs_t offset, UINT8 data);
4646
4747private:
48   required_memory_region m_rom;
4849   optional_shared_ptr<UINT8> m_ram;
49   const UINT8 *m_rom;
5050
5151   int m_en;
5252   UINT8 m_bank;
trunk/src/mess/machine/c64_xl80.c
r20582r20583
8585   {
8686      UINT8 code = m_ram[((ma + column) & 0x7ff)];
8787      UINT16 addr = (code << 3) | (ra & 0x07);
88      UINT8 data = m_char_rom[addr & 0x7ff];
88      UINT8 data = m_char_rom->base()[addr & 0x7ff];
8989
9090      if (column == cursor_x)
9191      {
r20582r20583
176176c64_xl80_device::c64_xl80_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
177177   device_t(mconfig, C64_XL80, "XL 80", tag, owner, clock),
178178   device_c64_expansion_card_interface(mconfig, *this),
179   m_crtc(*this, HD46505SP_TAG)
179   m_crtc(*this, HD46505SP_TAG),
180   m_char_rom(*this, HD46505SP_TAG)
180181{
181182}
182183
r20582r20583
187188
188189void c64_xl80_device::device_start()
189190{
190   // find memory regions
191   m_char_rom = memregion(HD46505SP_TAG)->base();
191   // allocate memory
192192   c64_ram_pointer(machine(), RAM_SIZE);
193193
194194   // state saving
trunk/src/mess/machine/c64_xl80.h
r20582r20583
5353
5454private:
5555   required_device<h46505_device> m_crtc;
56
57   UINT8 *m_char_rom;
56   required_memory_region m_char_rom;
5857};
5958
6059
trunk/src/mess/machine/comx_thm.c
r20582r20583
5454
5555comx_thm_device::comx_thm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
5656   device_t(mconfig, COMX_THM, "COMX-35 Thermal Printer Card", tag, owner, clock),
57   device_comx_expansion_card_interface(mconfig, *this)
57   device_comx_expansion_card_interface(mconfig, *this),
58   m_rom(*this, "c000")
5859{
5960}
6061
r20582r20583
6566
6667void comx_thm_device::device_start()
6768{
68   m_rom = memregion("c000")->base();
6969}
7070
7171
r20582r20583
8888
8989   if (offset >= 0xc000 && offset < 0xd000)
9090   {
91      data = m_rom[offset & 0xfff];
91      data = m_rom->base()[offset & 0xfff];
9292   }
9393
9494   return data;
trunk/src/mess/machine/c64_16kb.c
r20582r20583
9999
100100c64_16kb_cartridge_device::c64_16kb_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
101101   device_t(mconfig, C64_16KB, "C64 16KB EPROM cartridge", tag, owner, clock),
102   device_c64_expansion_card_interface(mconfig, *this)
102   device_c64_expansion_card_interface(mconfig, *this),
103   m_sw1(*this, "SW1")
103104{
104105}
105106
r20582r20583
121122
122123void c64_16kb_cartridge_device::device_reset()
123124{
124   UINT8 mode = ioport("SW1")->read();
125   UINT8 mode = m_sw1->read();
125126
126127   m_exrom = BIT(mode, 0);
127128   m_game = BIT(mode, 1);
trunk/src/mess/machine/comx_fd.c
r20582r20583
133133   m_fdc(*this, WD1770_TAG),
134134   m_floppy0(*this, WD1770_TAG":0"),
135135   m_floppy1(*this, WD1770_TAG":1"),
136   m_rom(*this, "c000"),
136137   m_q(0),
137138   m_addr(0),
138139   m_disb(1)
r20582r20583
146147
147148void comx_fd_device::device_start()
148149{
149   // find memory regions
150   m_rom = memregion("c000")->base();
151
152150   // state saving
153151   save_item(NAME(m_ds));
154152   save_item(NAME(m_q));
r20582r20583
209207
210208   if (offset >= 0x0dd0 && offset < 0x0de0)
211209   {
212      data = m_rom[offset & 0x1fff];
210      data = m_rom->base()[offset & 0x1fff];
213211      *extrom = 0;
214212   }
215213   else if (offset >= 0xc000 && offset < 0xe000)
216214   {
217      data = m_rom[offset & 0x1fff];
215      data = m_rom->base()[offset & 0x1fff];
218216   }
219217
220218   return data;
trunk/src/mess/machine/comx_thm.h
r20582r20583
4646   virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data);
4747
4848private:
49   UINT8 *m_rom;               // program ROM
49   required_memory_region m_rom;
5050};
5151
5252
trunk/src/mess/machine/c64_16kb.h
r20582r20583
4545
4646   // device_c64_expansion_card_interface overrides
4747   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
48
49private:
50   required_ioport m_sw1;
4851};
4952
5053
trunk/src/mess/machine/comx_fd.h
r20582r20583
5757   required_device<wd1770_t> m_fdc;
5858   required_device<floppy_connector> m_floppy0;
5959   required_device<floppy_connector> m_floppy1;
60   required_memory_region m_rom;
6061
6162   // floppy state
62   const UINT8 *m_rom;
6363   int m_q;                // FDC register select
6464   int m_addr;             // FDC address
6565   int m_disb;             // data request disable
trunk/src/mess/machine/e01.c
r20582r20583
3939
4040    TODO:
4141
42    - memory_bank::set_entry called for bank ':econet254:e01s:bank2' with invalid bank entry 0
4342    - centronics strobe
4443    - econet clock speed select
4544    - ADLC interrupts
r20582r20583
274273//-------------------------------------------------
275274
276275static ADDRESS_MAP_START( e01_mem, AS_PROGRAM, 8, e01_device )
277   AM_RANGE(0x0000, 0xfbff) AM_READ_BANK("bank1") AM_WRITE_BANK("bank2")
276   AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
278277   AM_RANGE(0xfc00, 0xfc00) AM_MIRROR(0x00c3) AM_READWRITE(rtc_address_r, rtc_address_w)
279278   AM_RANGE(0xfc04, 0xfc04) AM_MIRROR(0x00c3) AM_READWRITE(rtc_data_r, rtc_data_w)
280279   AM_RANGE(0xfc08, 0xfc08) AM_MIRROR(0x00c0) AM_READ(ram_select_r) AM_WRITE(floppy_w)
r20582r20583
288287   AM_RANGE(0xfc31, 0xfc31) AM_MIRROR(0x00c0) AM_READ(hdc_status_r)
289288   AM_RANGE(0xfc32, 0xfc32) AM_MIRROR(0x00c0) AM_WRITE(hdc_select_w)
290289   AM_RANGE(0xfc33, 0xfc33) AM_MIRROR(0x00c0) AM_WRITE(hdc_irq_enable_w)
291   AM_RANGE(0xfd00, 0xffff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank4")
292290ADDRESS_MAP_END
293291
294292
r20582r20583
423421      m_scsibus(*this, SCSIBUS_TAG ":host"),
424422      m_floppy0(*this, WD2793_TAG":0"),
425423      m_floppy1(*this, WD2793_TAG":1"),
424      m_rom(*this, R65C102_TAG),
426425      m_adlc_ie(0),
427426      m_hdc_ie(0),
428427      m_rtc_irq(CLEAR_LINE),
r20582r20583
447446      m_scsibus(*this, SCSIBUS_TAG ":host"),
448447      m_floppy0(*this, WD2793_TAG":0"),
449448      m_floppy1(*this, WD2793_TAG":1"),
449      m_rom(*this, R65C102_TAG),
450450      m_adlc_ie(0),
451451      m_hdc_ie(0),
452452      m_rtc_irq(CLEAR_LINE),
r20582r20583
492492   m_fdc->setup_intrq_cb(wd2793_t::line_cb(FUNC(e01_device::fdc_irq_w), this));
493493   m_fdc->setup_drq_cb(wd2793_t::line_cb(FUNC(e01_device::fdc_drq_w), this));
494494
495   // setup memory banking
496   UINT8 *ram = m_ram->pointer();
497   UINT8 *rom = memregion(R65C102_TAG)->base();
498
499   membank("bank1")->configure_entry(0, ram);
500   membank("bank1")->configure_entry(1, rom);
501   membank("bank1")->set_entry(1);
502
503   membank("bank2")->configure_entry(0, ram);
504//  membank("bank2")->set_entry(0);
505
506   membank("bank3")->configure_entry(0, ram + 0xfd00);
507   membank("bank3")->configure_entry(1, rom + 0xfd00);
508   membank("bank3")->set_entry(1);
509
510   membank("bank4")->configure_entry(0, ram + 0xfd00);
511   membank("bank4")->set_entry(0);
512
513495   // allocate timers
514496   m_clk_timer = timer_alloc();
515497
r20582r20583
531513void e01_device::device_reset()
532514{
533515   m_clk_timer->adjust(attotime::zero, 0, attotime::from_hz(200000));
534
535   membank("bank1")->set_entry(1);
536   membank("bank3")->set_entry(1);
516   m_ram_en = false;
537517}
538518
539519
r20582r20583
552532
553533
554534//-------------------------------------------------
535//  read -
536//-------------------------------------------------
537
538READ8_MEMBER( e01_device::read )
539{
540   UINT8 data = 0;
541
542   if (m_ram_en)
543   {
544      data = m_ram->pointer()[offset];
545   }
546   else
547   {
548      data = m_rom->base()[offset];
549   }
550
551   return data;
552}
553
554
555//-------------------------------------------------
556//  write -
557//-------------------------------------------------
558
559WRITE8_MEMBER( e01_device::write )
560{
561   m_ram->pointer()[offset] = data;
562}
563
564
565//-------------------------------------------------
555566//  eprom_r - ROM/RAM select read
556567//-------------------------------------------------
557568
558569READ8_MEMBER( e01_device::ram_select_r )
559570{
560   membank("bank1")->set_entry(0);
561   membank("bank3")->set_entry(0);
571   m_ram_en = true;
562572
563573   return 0;
564574}
trunk/src/mess/machine/e01.h
r20582r20583
3737      TYPE_E01S
3838   };
3939
40   DECLARE_READ8_MEMBER( read );
41   DECLARE_WRITE8_MEMBER( write );
4042   DECLARE_READ8_MEMBER( ram_select_r );
4143   DECLARE_WRITE8_MEMBER( floppy_w );
4244   DECLARE_READ8_MEMBER( network_irq_disable_r );
r20582r20583
8890   required_device<scsicb_device> m_scsibus;
8991   required_device<floppy_connector> m_floppy0;
9092   required_device<floppy_connector> m_floppy1;
93   required_memory_region m_rom;
9194
9295   inline void update_interrupts();
9396   inline void network_irq_enable(int enabled);
r20582r20583
102105   int m_fdc_irq;
103106   bool m_fdc_drq;
104107   int m_adlc_irq;
105
106108   int m_clk_en;
109   bool m_ram_en;
107110
108111   int m_variant;
109112
trunk/src/mess/machine/apricotkb.c
r20582r20583
269269//-------------------------------------------------
270270
271271apricot_keyboard_device::apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
272   : device_t(mconfig, APRICOT_KEYBOARD, "Apricot Keyboard", tag, owner, clock)
272   : device_t(mconfig, APRICOT_KEYBOARD, "Apricot Keyboard", tag, owner, clock),
273      m_y0(*this, "Y0"),
274      m_y1(*this, "Y1"),
275      m_y2(*this, "Y2"),
276      m_y3(*this, "Y3"),
277      m_y4(*this, "Y4"),
278      m_y5(*this, "Y5"),
279      m_y6(*this, "Y6"),
280      m_y7(*this, "Y7"),
281      m_y8(*this, "Y8"),
282      m_y9(*this, "Y9"),
283      m_ya(*this, "YA"),
284      m_yb(*this, "YB"),
285      m_yc(*this, "YC"),
286      m_modifiers(*this, "MODIFIERS")
273287{
274288}
275289
r20582r20583
302316{
303317   UINT8 data = 0xff;
304318
305   if (!BIT(m_kb_y, 0)) data &= ioport("Y0")->read();
306   if (!BIT(m_kb_y, 1)) data &= ioport("Y1")->read();
307   if (!BIT(m_kb_y, 2)) data &= ioport("Y2")->read();
308   if (!BIT(m_kb_y, 3)) data &= ioport("Y3")->read();
309   if (!BIT(m_kb_y, 4)) data &= ioport("Y4")->read();
310   if (!BIT(m_kb_y, 5)) data &= ioport("Y5")->read();
311   if (!BIT(m_kb_y, 6)) data &= ioport("Y6")->read();
312   if (!BIT(m_kb_y, 7)) data &= ioport("Y7")->read();
313   if (!BIT(m_kb_y, 8)) data &= ioport("Y8")->read();
314   if (!BIT(m_kb_y, 9)) data &= ioport("Y9")->read();
315   if (!BIT(m_kb_y, 10)) data &= ioport("YA")->read();
316   if (!BIT(m_kb_y, 11)) data &= ioport("YB")->read();
317   if (!BIT(m_kb_y, 12)) data &= ioport("YC")->read();
319   if (!BIT(m_kb_y, 0)) data &= m_y0->read();
320   if (!BIT(m_kb_y, 1)) data &= m_y1->read();
321   if (!BIT(m_kb_y, 2)) data &= m_y2->read();
322   if (!BIT(m_kb_y, 3)) data &= m_y3->read();
323   if (!BIT(m_kb_y, 4)) data &= m_y4->read();
324   if (!BIT(m_kb_y, 5)) data &= m_y5->read();
325   if (!BIT(m_kb_y, 6)) data &= m_y6->read();
326   if (!BIT(m_kb_y, 7)) data &= m_y7->read();
327   if (!BIT(m_kb_y, 8)) data &= m_y8->read();
328   if (!BIT(m_kb_y, 9)) data &= m_y9->read();
329   if (!BIT(m_kb_y, 10)) data &= m_ya->read();
330   if (!BIT(m_kb_y, 11)) data &= m_yb->read();
331   if (!BIT(m_kb_y, 12)) data &= m_yc->read();
318332
319333   return data;
320334}
r20582r20583
356370
357371   */
358372
359   UINT8 modifiers = ioport("MODIFIERS")->read();
373   UINT8 modifiers = m_modifiers->read();
360374
361375   return modifiers << 1;
362376}
trunk/src/mess/machine/apricotkb.h
r20582r20583
8585private:
8686   devcb_resolved_write_line   m_out_txd_func;
8787
88   required_ioport m_y0;
89   required_ioport m_y1;
90   required_ioport m_y2;
91   required_ioport m_y3;
92   required_ioport m_y4;
93   required_ioport m_y5;
94   required_ioport m_y6;
95   required_ioport m_y7;
96   required_ioport m_y8;
97   required_ioport m_y9;
98   required_ioport m_ya;
99   required_ioport m_yb;
100   required_ioport m_yc;
101   required_ioport m_modifiers;
102
88103   UINT16 m_kb_y;
89104};
90105
trunk/src/mess/machine/c2040.c
r20582r20583
13411341      m_i = (m_rw << 10) | ((m_pi & 0xf0) << 1) | (m_mode << 4) | (m_pi & 0x0f);
13421342   }
13431343
1344   m_e = m_gcr[m_i];
1344   m_e = m_gcr->base()[m_i];
13451345}
13461346
13471347
r20582r20583
14691469      m_via(*this, M6522_TAG),
14701470      m_image0(*this, FLOPPY_0),
14711471      m_image1(*this, FLOPPY_1),
1472      m_gcr(*this, "gcr"),
14721473      m_drive(0),
14731474      m_side(0),
14741475      m_rfdo(1),
r20582r20583
15031504      m_via(*this, M6522_TAG),
15041505      m_image0(*this, FLOPPY_0),
15051506      m_image1(*this, FLOPPY_1),
1507      m_gcr(*this, "gcr"),
15061508      m_drive(0),
15071509      m_side(0),
15081510      m_rfdo(1),
r20582r20583
15861588{
15871589   m_bit_timer = timer_alloc();
15881590
1589   // find GCR ROM
1590   m_gcr = memregion("gcr")->base();
1591
15921591   // install image callbacks
15931592   m_unit[0].m_image = m_image0;
15941593
trunk/src/mess/machine/c2040.h
r20582r20583
102102   required_device<via6522_device> m_via;
103103   required_device<legacy_floppy_image_device> m_image0;
104104   optional_device<legacy_floppy_image_device> m_image1;
105   required_memory_region m_gcr;
105106
106107   struct {
107108      // motors
r20582r20583
131132   int m_bit_count;                    // GCR bit counter
132133   UINT16 m_sr;                        // GCR data shift register
133134   UINT8 m_pi;                         // parallel data input
134   const UINT8* m_gcr;                 // GCR encoder/decoder ROM
135135   UINT16 m_i;                         // GCR encoder/decoded ROM address
136136   UINT8 m_e;                          // GCR encoder/decoded ROM data
137137
trunk/src/mess/machine/lux21046.c
r20582r20583
418418   save_item(NAME(m_dma_irq));
419419   save_item(NAME(m_busy));
420420   save_item(NAME(m_force_busy));
421
422   // patch out sector skew table
423/*  UINT8 *rom = memregion(Z80_TAG)->base();
424
425    for (int i = 0; i < 16; i++)
426        rom[0x2dd3 + i] = i + 1;*/
427421}
428422
429423
trunk/src/mess/machine/lux4105.c
r20582r20583
164164luxor_4105_device::luxor_4105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
165165   : device_t(mconfig, LUXOR_4105, "Luxor 4105", tag, owner, clock),
166166      device_abc1600bus_card_interface(mconfig, *this),
167      m_sasibus(*this, SASIBUS_TAG ":host")
167      m_sasibus(*this, SASIBUS_TAG ":host"),
168      m_1e(*this, "1E"),
169      m_5e(*this, "5E")
168170{
169171}
170172
r20582r20583
212214
213215void luxor_4105_device::abc1600bus_cs(UINT8 data)
214216{
215   m_cs = (data == ioport("5E")->read());
217   m_cs = (data == m_5e->read());
216218}
217219
218220
r20582r20583
283285   {
284286      if (!m_sasibus->scsi_bsy_r())
285287      {
286         ioport("1E")->read();
288         data = m_1e->read();
287289      }
288290      else
289291      {
trunk/src/mess/machine/lux4105.h
r20582r20583
7272   abc1600bus_slot_device *m_slot;
7373
7474   required_device<scsicb_device> m_sasibus;
75   required_ioport m_1e;
76   required_ioport m_5e;
7577
7678   int m_cs;
7779   UINT8 m_data;
trunk/src/mess/machine/c64_ide64.c
r20582r20583
100100   device_c64_expansion_card_interface(mconfig, *this),
101101   m_flash_rom(*this, AT29C010A_TAG),
102102   m_rtc(*this, DS1302_TAG),
103   m_ide(*this, IDE_TAG)
103   m_ide(*this, IDE_TAG),
104   m_jp1(*this, "JP1")
104105{
105106}
106107
r20582r20583
131132
132133   m_enable = 1;
133134
134   m_wp = ioport("JP1")->read();
135   m_wp = m_jp1->read();
135136   m_game = !m_wp;
136137   m_exrom = !m_wp;
137138}
trunk/src/mess/machine/c64_ide64.h
r20582r20583
5555   required_device<atmel_29c010_device> m_flash_rom;
5656   required_device<ds1302_device> m_rtc;
5757   required_device<ide_controller_device> m_ide;
58   required_ioport m_jp1;
5859
5960   UINT8 m_bank;
6061   UINT16 m_ide_data;
trunk/src/mess/machine/comx_epr.c
r20582r20583
6060comx_epr_device::comx_epr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
6161   device_t(mconfig, COMX_EPR, "COMX-35 F&M EPROM Switchboard", tag, owner, clock),
6262   device_comx_expansion_card_interface(mconfig, *this),
63   m_rom(*this, "f800"),
64   m_eprom(*this, "eprom"),
6365   m_select(0)
6466{
6567}
r20582r20583
7173
7274void comx_epr_device::device_start()
7375{
74   m_rom = memregion("f800")->base();
75   m_eprom = memregion("eprom")->base();
76
7776   // state saving
7877   save_item(NAME(m_select));
7978}
r20582r20583
9998   if (offset >= 0xc000 && offset < 0xe000)
10099   {
101100      offs_t address = (m_select << 13) | (offset & 0x1fff);
102      data = m_eprom[address];
101      data = m_eprom->base()[address];
103102   }
104103   else if (offset >= 0xf800)
105104   {
106      data = m_rom[offset & 0x7ff];
105      data = m_rom->base()[offset & 0x7ff];
107106   }
108107
109108   return data;
trunk/src/mess/machine/comx_epr.h
r20582r20583
4545   virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data);
4646
4747private:
48   required_memory_region m_rom;
49   required_memory_region m_eprom;
50
4851   UINT8 m_select;
49   UINT8 *m_rom;               // program ROM
50   UINT8 *m_eprom;             // EPROMs
5152};
5253
5354
trunk/src/mess/includes/sg1000.h
r20582r20583
5050   sg1000_state(const machine_config &mconfig, device_type type, const char *tag)
5151      : driver_device(mconfig, type, tag),
5252         m_maincpu(*this, Z80_TAG),
53         m_ram(*this, RAM_TAG)
53         m_ram(*this, RAM_TAG),
54         m_rom(*this, Z80_TAG)
5455   { }
5556
5657   required_device<cpu_device> m_maincpu;
5758   required_device<ram_device> m_ram;
59   required_memory_region m_rom;
5860
5961   virtual void machine_start();
6062
r20582r20583
8082public:
8183   sc3000_state(const machine_config &mconfig, device_type type, const char *tag)
8284      : sg1000_state(mconfig, type, tag),
83         m_cassette(*this, CASSETTE_TAG)
85         m_cassette(*this, CASSETTE_TAG),
86         m_pa0(*this, "PA0"),
87         m_pa1(*this, "PA1"),
88         m_pa2(*this, "PA2"),
89         m_pa3(*this, "PA3"),
90         m_pa4(*this, "PA4"),
91         m_pa5(*this, "PA5"),
92         m_pa6(*this, "PA6"),
93         m_pa7(*this, "PA7"),
94         m_pb0(*this, "PB0"),
95         m_pb1(*this, "PB1"),
96         m_pb2(*this, "PB2"),
97         m_pb3(*this, "PB3"),
98         m_pb4(*this, "PB4"),
99         m_pb5(*this, "PB5"),
100         m_pb6(*this, "PB6"),
101         m_pb7(*this, "PB7")
84102   { }
85103
86104   required_device<cassette_image_device> m_cassette;
105   required_ioport m_pa0;
106   required_ioport m_pa1;
107   required_ioport m_pa2;
108   required_ioport m_pa3;
109   required_ioport m_pa4;
110   required_ioport m_pa5;
111   required_ioport m_pa6;
112   required_ioport m_pa7;
113   required_ioport m_pb0;
114   required_ioport m_pb1;
115   required_ioport m_pb2;
116   required_ioport m_pb3;
117   required_ioport m_pb4;
118   required_ioport m_pb5;
119   required_ioport m_pb6;
120   required_ioport m_pb7;
87121
88122   virtual void machine_start();
89123
trunk/src/mess/includes/pc8001.h
r20582r20583
3737         m_cassette(*this, CASSETTE_TAG),
3838         m_centronics(*this, CENTRONICS_TAG),
3939         m_speaker(*this, SPEAKER_TAG),
40         m_ram(*this, RAM_TAG)
40         m_ram(*this, RAM_TAG),
41         m_rom(*this, Z80_TAG),
42         m_char_rom(*this, UPD3301_TAG)
4143   { }
4244
4345   required_device<cpu_device> m_maincpu;
r20582r20583
4850   required_device<centronics_device> m_centronics;
4951   required_device<speaker_sound_device> m_speaker;
5052   required_device<ram_device> m_ram;
53   required_memory_region m_rom;
54   required_memory_region m_char_rom;
5155
5256   virtual void machine_start();
5357
54   virtual void video_start();
55
5658   DECLARE_WRITE8_MEMBER( port10_w );
5759   DECLARE_WRITE8_MEMBER( port30_w );
5860   DECLARE_READ8_MEMBER( port40_r );
r20582r20583
6466   DECLARE_WRITE8_MEMBER( dma_io_w );
6567
6668   /* video state */
67   UINT8 *m_char_rom;
6869   int m_width80;
6970   int m_color;
7071};
r20582r20583
7374{
7475public:
7576   pc8001mk2_state(const machine_config &mconfig, device_type type, const char *tag)
76      : pc8001_state(mconfig, type, tag)
77      : pc8001_state(mconfig, type, tag),
78         m_kanji_rom(*this, "kanji")
7779   { }
7880
81   required_memory_region m_kanji_rom;
82
7983   DECLARE_WRITE8_MEMBER( port31_w );
8084};
8185
trunk/src/mess/includes/eti660.h
r20582r20583
3131         m_maincpu(*this, CDP1802_TAG),
3232         m_cti(*this, CDP1864_TAG),
3333         m_pia(*this, MC6821_TAG),
34         m_cassette(*this, CASSETTE_TAG)
34         m_cassette(*this, CASSETTE_TAG),
35         m_pa0(*this, "PA0"),
36         m_pa1(*this, "PA1"),
37         m_pa2(*this, "PA2"),
38         m_pa3(*this, "PA3"),
39         m_special(*this, "SPECIAL")
3540   { }
3641
3742   required_device<cosmac_device> m_maincpu;
3843   required_device<cdp1864_device> m_cti;
3944   required_device<pia6821_device> m_pia;
4045   required_device<cassette_image_device> m_cassette;
46   required_ioport m_pa0;
47   required_ioport m_pa1;
48   required_ioport m_pa2;
49   required_ioport m_pa3;
50   required_ioport m_special;
4151
4252   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4353
trunk/src/mess/includes/cosmicos.h
r20582r20583
4747         m_led(*this, DM9368_TAG),
4848         m_cassette(*this, CASSETTE_TAG),
4949         m_speaker(*this, SPEAKER_TAG),
50         m_ram(*this, RAM_TAG)
50         m_ram(*this, RAM_TAG),
51         m_rom(*this, CDP1802_TAG),
52         m_y1(*this, "Y1"),
53         m_y2(*this, "Y2"),
54         m_y3(*this, "Y3"),
55         m_y4(*this, "Y4"),
56         m_io_data(*this, "DATA"),
57         m_special(*this, "SPECIAL"),
58         m_buttons(*this, "BUTTONS")
5159   { }
5260
5361   required_device<cosmac_device> m_maincpu;
r20582r20583
5664   required_device<cassette_image_device> m_cassette;
5765   required_device<speaker_sound_device> m_speaker;
5866   required_device<ram_device> m_ram;
67   required_memory_region m_rom;
68   required_ioport m_y1;
69   required_ioport m_y2;
70   required_ioport m_y3;
71   required_ioport m_y4;
72   required_ioport m_io_data;
73   required_ioport m_special;
74   required_ioport m_buttons;
5975
6076   virtual void machine_start();
6177   virtual void machine_reset();
r20582r20583
97113   void clear_input_data();
98114   void set_ram_mode();
99115
100
101116   /* CPU state */
102117   int m_wait;
103118   int m_clear;
r20582r20583
120135   int m_dmaout;
121136   int m_efx;
122137   int m_video_on;
138
123139   DECLARE_DRIVER_INIT(cosmicos);
124140   TIMER_DEVICE_CALLBACK_MEMBER(digit_tick);
125141   TIMER_DEVICE_CALLBACK_MEMBER(int_tick);
trunk/src/mess/includes/vidbrain.h
r20582r20583
3434         m_uv(*this, UV201_TAG),
3535         m_discrete(*this, DISCRETE_TAG),
3636         m_dac(*this, DAC_TAG),
37         m_exp(*this, VIDEOBRAIN_EXPANSION_SLOT_TAG)
37         m_exp(*this, VIDEOBRAIN_EXPANSION_SLOT_TAG),
38         m_io00(*this, "IO00"),
39         m_io01(*this, "IO01"),
40         m_io02(*this, "IO02"),
41         m_io03(*this, "IO03"),
42         m_io04(*this, "IO04"),
43         m_io05(*this, "IO05"),
44         m_io06(*this, "IO06"),
45         m_io07(*this, "IO07"),
46         m_uv201_31(*this, "UV201-31"),
47         m_joy_r(*this, "JOY-R"),
48         m_joy1_x(*this, "JOY1-X"),
49         m_joy1_y(*this, "JOY1-Y"),
50         m_joy2_x(*this, "JOY2-X"),
51         m_joy2_y(*this, "JOY2-Y"),
52         m_joy3_x(*this, "JOY3-X"),
53         m_joy3_y(*this, "JOY3-Y"),
54         m_joy4_x(*this, "JOY4-X"),
55         m_joy4_y(*this, "JOY4-Y")
3856   { }
3957
4058   required_device<cpu_device> m_maincpu;
r20582r20583
4361   required_device<discrete_sound_device> m_discrete;
4462   required_device<dac_device> m_dac;
4563   required_device<videobrain_expansion_slot_device> m_exp;
64   required_ioport m_io00;
65   required_ioport m_io01;
66   required_ioport m_io02;
67   required_ioport m_io03;
68   required_ioport m_io04;
69   required_ioport m_io05;
70   required_ioport m_io06;
71   required_ioport m_io07;
72   required_ioport m_uv201_31;
73   required_ioport m_joy_r;
74   required_ioport m_joy1_x;
75   required_ioport m_joy1_y;
76   required_ioport m_joy2_x;
77   required_ioport m_joy2_y;
78   required_ioport m_joy3_x;
79   required_ioport m_joy3_y;
80   required_ioport m_joy4_x;
81   required_ioport m_joy4_y;
4682
4783   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
4884   virtual void machine_start();
trunk/src/mess/includes/ql.h
r20582r20583
7777         m_mdv2(*this, MDV_2),
7878         m_ram(*this, RAM_TAG),
7979         m_fdc(*this, WD1772_TAG),
80         m_printer(*this, PRINTER_TAG)
80         m_printer(*this, PRINTER_TAG),
81         m_y0(*this, "Y0"),
82         m_y1(*this, "Y1"),
83         m_y2(*this, "Y2"),
84         m_y3(*this, "Y3"),
85         m_y4(*this, "Y4"),
86         m_y5(*this, "Y5"),
87         m_y6(*this, "Y6"),
88         m_y7(*this, "Y7"),
89         m_joy0(*this, "JOY0"),
90         m_joy1(*this, "JOY1")
8191   { }
8292
8393   required_device<cpu_device> m_maincpu;
r20582r20583
90100   required_device<ram_device> m_ram;
91101   required_device<wd1772_device> m_fdc;
92102   required_device<printer_image_device> m_printer;
103   required_ioport m_y0;
104   required_ioport m_y1;
105   required_ioport m_y2;
106   required_ioport m_y3;
107   required_ioport m_y4;
108   required_ioport m_y5;
109   required_ioport m_y6;
110   required_ioport m_y7;
111   required_ioport m_joy0;
112   required_ioport m_joy1;
93113
94114   virtual void machine_start();
95115   virtual void machine_reset();
trunk/src/mess/includes/abc80x.h
r20582r20583
8181         m_rom(*this, Z80_TAG),
8282         m_video_ram(*this, "video_ram"),
8383         m_char_ram(*this, "char_ram"),
84         m_io_sb(*this, "SB"),
8485         m_ctc_z0(0),
8586         m_sio_rxdb(1),
8687         m_sio_txcb(0),
r20582r20583
100101   required_memory_region m_rom;
101102   optional_shared_ptr<UINT8> m_video_ram;
102103   optional_shared_ptr<UINT8> m_char_ram;
104   required_ioport m_io_sb;
103105
104106   enum
105107   {
r20582r20583
215217      : abc800_state(mconfig, type, tag),
216218         m_crtc(*this, MC6845_TAG),
217219         m_abc77(*this, ABC77_TAG),
218         m_char_rom(*this, MC6845_TAG)
220         m_char_rom(*this, MC6845_TAG),
221         m_config(*this, "CONFIG")
219222   { }
220223
221224   required_device<mc6845_device> m_crtc;
222225   optional_device<abc77_device> m_abc77;
223226   required_memory_region m_char_rom;
227   required_ioport m_config;
224228
225229   DECLARE_DRIVER_INIT(driver_init);
226230   virtual void machine_start();
trunk/src/mess/includes/adam.h
r20582r20583
3434         m_slot1(*this, ADAM_LEFT_EXPANSION_SLOT_TAG),
3535         m_slot2(*this, ADAM_CENTER_EXPANSION_SLOT_TAG),
3636         m_slot3(*this, ADAM_RIGHT_EXPANSION_SLOT_TAG),
37         m_boot_rom(*this, "boot"),
38         m_os7_rom(*this, "os7"),
39         m_cart_rom(*this, "cart"),
3740         m_mioc(0),
3841         m_game(0),
3942         m_an(0),
r20582r20583
5053   required_device<adam_expansion_slot_device> m_slot1;
5154   required_device<adam_expansion_slot_device> m_slot2;
5255   required_device<adam_expansion_slot_device> m_slot3;
56   required_memory_region m_boot_rom;
57   required_memory_region m_os7_rom;
58   required_memory_region m_cart_rom;
5359
5460   virtual void machine_start();
5561   virtual void machine_reset();
r20582r20583
8086   DECLARE_WRITE_LINE_MEMBER( os3_w );
8187
8288   // memory state
83   const UINT8 *m_boot_rom;
84   const UINT8 *m_os7_rom;
85   const UINT8 *m_cart_rom;
8689   UINT8 m_mioc;
8790   int m_game;
8891
trunk/src/mess/includes/vcs80.h
r20582r20583
1919public:
2020   vcs80_state(const machine_config &mconfig, device_type type, const char *tag)
2121      : driver_device(mconfig, type, tag),
22         m_pio(*this, Z80PIO_TAG)
22         m_pio(*this, Z80PIO_TAG),
23         m_y0(*this, "Y0"),
24         m_y1(*this, "Y1"),
25         m_y2(*this, "Y2")
2326   { }
2427
2528   required_device<z80pio_device> m_pio;
29   required_ioport m_y0;
30   required_ioport m_y1;
31   required_ioport m_y2;
2632
2733   virtual void machine_start();
2834
trunk/src/mess/includes/atarist.h
r20582r20583
7777         m_mfp(*this, MC68901_TAG),
7878         m_centronics(*this, CENTRONICS_TAG),
7979         m_ram(*this, RAM_TAG),
80         m_p31(*this, "P31"),
81         m_p32(*this, "P32"),
82         m_p33(*this, "P33"),
83         m_p34(*this, "P34"),
84         m_p35(*this, "P35"),
85         m_p36(*this, "P36"),
86         m_p37(*this, "P37"),
87         m_p40(*this, "P40"),
88         m_p41(*this, "P41"),
89         m_p42(*this, "P42"),
90         m_p43(*this, "P43"),
91         m_p44(*this, "P44"),
92         m_p45(*this, "P45"),
93         m_p46(*this, "P46"),
94         m_p47(*this, "P47"),
95         m_joy0(*this, "IKBD_JOY0"),
96         m_joy1(*this, "IKBD_JOY1"),
97         m_mousex(*this, "IKBD_MOUSEX"),
98         m_mousey(*this, "IKBD_MOUSEY"),
99         m_config(*this, "config"),
80100         m_acia_ikbd_irq(1),
81101         m_acia_midi_irq(1),
82102         m_ikbd_mouse_x(0),
r20582r20583
92112   required_device<mc68901_device> m_mfp;
93113   required_device<centronics_device> m_centronics;
94114   required_device<ram_device> m_ram;
115   required_ioport m_p31;
116   required_ioport m_p32;
117   required_ioport m_p33;
118   required_ioport m_p34;
119   required_ioport m_p35;
120   required_ioport m_p36;
121   required_ioport m_p37;
122   required_ioport m_p40;
123   required_ioport m_p41;
124   required_ioport m_p42;
125   required_ioport m_p43;
126   required_ioport m_p44;
127   required_ioport m_p45;
128   required_ioport m_p46;
129   required_ioport m_p47;
130   optional_ioport m_joy0;
131   optional_ioport m_joy1;
132   optional_ioport m_mousex;
133   optional_ioport m_mousey;
134   optional_ioport m_config;
95135
96136   void machine_start();
97137
r20582r20583
382422{
383423public:
384424   stbook_state(const machine_config &mconfig, device_type type, const char *tag)
385      : ste_state(mconfig, type, tag)
425      : ste_state(mconfig, type, tag),
426         m_sw400(*this, "SW400")
386427   { }
387428
429   required_ioport m_sw400;
430
388431   void machine_start();
389432   void video_start();
390433
trunk/src/mess/includes/bw12.h
r20582r20583
4747         m_floppy0(*this, UPD765_TAG ":1:525dd"),
4848         m_floppy1(*this, UPD765_TAG ":2:525dd"),
4949         m_floppy_timer(*this, FLOPPY_TIMER_TAG),
50         m_modifiers(*this, "MODIFIERS"),
51         m_video_ram(*this, "video_ram")
50         m_rom(*this, Z80_TAG),
51         m_char_rom(*this, "chargen"),
52         m_video_ram(*this, "video_ram"),
53         m_modifiers(*this, "MODIFIERS")
5254   { }
5355
5456   required_device<cpu_device> m_maincpu;
r20582r20583
6264   required_device<floppy_image_device> m_floppy0;
6365   required_device<floppy_image_device> m_floppy1;
6466   required_device<timer_device> m_floppy_timer;
67   required_memory_region m_rom;
68   required_memory_region m_char_rom;
69   required_shared_ptr<UINT8> m_video_ram;
6570   required_ioport m_modifiers;
6671
6772   virtual void machine_start();
6873   virtual void machine_reset();
6974
70   virtual void video_start();
71
7275   void bankswitch();
7376   void floppy_motor_off();
7477   void set_floppy_motor_off_timer();
r20582r20583
8790   /* memory state */
8891   int m_bank;
8992
90   /* video state */
91   required_shared_ptr<UINT8> m_video_ram;
92   UINT8 *m_char_rom;
93
9493   /* PIT state */
9594   int m_pit_out2;
9695
trunk/src/mess/includes/wangpc.h
r20582r20583
5656         m_centronics(*this, CENTRONICS_TAG),
5757         m_kb(*this, WANGPC_KEYBOARD_TAG),
5858         m_bus(*this, WANGPC_BUS_TAG),
59         m_sw(*this, "SW"),
5960         m_timer2_irq(1),
6061         m_acknlg(1),
6162         m_dav(1),
r20582r20583
8990   required_device<centronics_device> m_centronics;
9091   required_device<wangpc_keyboard_device> m_kb;
9192   required_device<wangpcbus_device> m_bus;
93   required_ioport m_sw;
9294
9395   virtual void machine_start();
9496   virtual void machine_reset();
trunk/src/mess/includes/poly880.h
r20582r20583
2424   poly880_state(const machine_config &mconfig, device_type type, const char *tag)
2525      : driver_device(mconfig, type, tag),
2626         m_maincpu(*this, Z80_TAG),
27         m_cassette(*this, CASSETTE_TAG)
27         m_cassette(*this, CASSETTE_TAG),
28         m_ki1(*this, "KI1"),
29         m_ki2(*this, "KI2"),
30         m_ki3(*this, "KI3")
2831   { }
2932
3033   required_device<cpu_device> m_maincpu;
3134   required_device<cassette_image_device> m_cassette;
35   required_ioport m_ki1;
36   required_ioport m_ki2;
37   required_ioport m_ki3;
3238
3339   virtual void machine_start();
3440
trunk/src/mess/includes/vixen.h
r20582r20583
3434         m_ram(*this, RAM_TAG),
3535         m_floppy0(*this, FDC1797_TAG":0"),
3636         m_floppy1(*this, FDC1797_TAG":1"),
37         m_rom(*this, Z8400A_TAG),
38         m_sync_rom(*this, "video"),
39         m_char_rom(*this, "chargen"),
40         m_video_ram(*this, "video_ram"),
41         m_y0(*this, "Y0"),
42         m_y1(*this, "Y1"),
43         m_y2(*this, "Y2"),
44         m_y3(*this, "Y3"),
45         m_y4(*this, "Y4"),
46         m_y5(*this, "Y5"),
47         m_y6(*this, "Y6"),
48         m_y7(*this, "Y7"),
3749         m_fdint(0),
3850         m_vsync(0),
3951         m_srq(1),
4052         m_atn(1),
4153         m_rxrdy(0),
42         m_txrdy(0),
43         m_video_ram(*this, "video_ram")
54         m_txrdy(0)
4455   { }
4556
4657   required_device<cpu_device> m_maincpu;
r20582r20583
5263   required_device<ram_device> m_ram;
5364   required_device<floppy_connector> m_floppy0;
5465   required_device<floppy_connector> m_floppy1;
66   required_memory_region m_rom;
67   required_memory_region m_sync_rom;
68   required_memory_region m_char_rom;
69   required_shared_ptr<UINT8> m_video_ram;
70   required_ioport m_y0;
71   required_ioport m_y1;
72   required_ioport m_y2;
73   required_ioport m_y3;
74   required_ioport m_y4;
75   required_ioport m_y5;
76   required_ioport m_y6;
77   required_ioport m_y7;
5578
5679   virtual void machine_start();
5780   virtual void machine_reset();
r20582r20583
107130   // video state
108131   int m_alt;
109132   int m_256;
110   required_shared_ptr<UINT8> m_video_ram;
111   const UINT8 *m_sync_rom;
112   const UINT8 *m_char_rom;
133
113134   DECLARE_DRIVER_INIT(vixen);
114135   TIMER_DEVICE_CALLBACK_MEMBER(vsync_tick);
115136};
trunk/src/mess/includes/exp85.h
r20582r20583
1414         m_maincpu(*this, I8085A_TAG),
1515         m_terminal(*this, TERMINAL_TAG),
1616         m_cassette(*this, CASSETTE_TAG),
17         m_speaker(*this, SPEAKER_TAG)
17         m_speaker(*this, SPEAKER_TAG),
18         m_rom(*this, I8085A_TAG)
1819   { }
1920
2021   required_device<cpu_device> m_maincpu;
2122   required_device<serial_terminal_device> m_terminal;
2223   required_device<cassette_image_device> m_cassette;
2324   required_device<speaker_sound_device> m_speaker;
25   required_memory_region m_rom;
2426
2527   virtual void machine_start();
2628
trunk/src/mess/includes/cgc7900.h
r20582r20583
2828   cgc7900_state(const machine_config &mconfig, device_type type, const char *tag)
2929      : driver_device(mconfig, type, tag),
3030         m_maincpu(*this, M68000_TAG),
31      m_chrom_ram(*this, "chrom_ram"),
32      m_plane_ram(*this, "plane_ram"),
33      m_clut_ram(*this, "clut_ram"),
34      m_overlay_ram(*this, "overlay_ram"),
35      m_roll_bitmap(*this, "roll_bitmap"),
36      m_pan_x(*this, "pan_x"),
37      m_pan_y(*this, "pan_y"),
38      m_zoom(*this, "zoom"),
39      m_blink_select(*this, "blink_select"),
40      m_plane_select(*this, "plane_select"),
41      m_plane_switch(*this, "plane_switch"),
42      m_color_status_fg(*this, "color_status_fg"),
43      m_color_status_bg(*this, "color_status_bg"),
44      m_roll_overlay(*this, "roll_overlay"){ }
31         m_char_rom(*this, "gfx1"),
32         m_chrom_ram(*this, "chrom_ram"),
33         m_plane_ram(*this, "plane_ram"),
34         m_clut_ram(*this, "clut_ram"),
35         m_overlay_ram(*this, "overlay_ram"),
36         m_roll_bitmap(*this, "roll_bitmap"),
37         m_pan_x(*this, "pan_x"),
38         m_pan_y(*this, "pan_y"),
39         m_zoom(*this, "zoom"),
40         m_blink_select(*this, "blink_select"),
41         m_plane_select(*this, "plane_select"),
42         m_plane_switch(*this, "plane_switch"),
43         m_color_status_fg(*this, "color_status_fg"),
44         m_color_status_bg(*this, "color_status_bg"),
45         m_roll_overlay(*this, "roll_overlay")
46   { }
4547
4648   required_device<cpu_device> m_maincpu;
49   required_memory_region m_char_rom;
50   required_shared_ptr<UINT16> m_chrom_ram;
51   required_shared_ptr<UINT16> m_plane_ram;
52   required_shared_ptr<UINT16> m_clut_ram;
53   required_shared_ptr<UINT16> m_overlay_ram;
54   required_shared_ptr<UINT16> m_roll_bitmap;
55   required_shared_ptr<UINT16> m_pan_x;
56   required_shared_ptr<UINT16> m_pan_y;
57   required_shared_ptr<UINT16> m_zoom;
58   required_shared_ptr<UINT16> m_blink_select;
59   required_shared_ptr<UINT16> m_plane_select;
60   required_shared_ptr<UINT16> m_plane_switch;
61   required_shared_ptr<UINT16> m_color_status_fg;
62   required_shared_ptr<UINT16> m_color_status_bg;
63   required_shared_ptr<UINT16> m_roll_overlay;
4764
4865   virtual void machine_start();
4966   virtual void machine_reset();
5067
51   virtual void video_start();
5268   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5369
5470   DECLARE_READ16_MEMBER( keyboard_r );
r20582r20583
7288
7389   /* video state */
7490   rgb_t m_clut[256];
75   required_shared_ptr<UINT16> m_chrom_ram;
76   required_shared_ptr<UINT16> m_plane_ram;
77   required_shared_ptr<UINT16> m_clut_ram;
78   required_shared_ptr<UINT16> m_overlay_ram;
79   UINT8 *m_char_rom;
80   required_shared_ptr<UINT16> m_roll_bitmap;
81   required_shared_ptr<UINT16> m_pan_x;
82   required_shared_ptr<UINT16> m_pan_y;
83   required_shared_ptr<UINT16> m_zoom;
84   required_shared_ptr<UINT16> m_blink_select;
85   required_shared_ptr<UINT16> m_plane_select;
86   required_shared_ptr<UINT16> m_plane_switch;
87   required_shared_ptr<UINT16> m_color_status_fg;
88   required_shared_ptr<UINT16> m_color_status_bg;
89   required_shared_ptr<UINT16> m_roll_overlay;
9091   int m_blink;
91   UINT32 screen_update_cgc7900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
92
9293   TIMER_DEVICE_CALLBACK_MEMBER(blink_tick);
9394};
9495
trunk/src/mess/includes/comx35.h
r20582r20583
4848         m_cassette(*this, CASSETTE_TAG),
4949         m_ram(*this, RAM_TAG),
5050         m_exp(*this, EXPANSION_TAG),
51         m_modifiers(*this, "MODIFIERS"),
52         m_char_ram(*this, "char_ram")
51         m_rom(*this, CDP1802_TAG),
52         m_char_ram(*this, "char_ram"),
53         m_d6(*this, "D6"),
54         m_modifiers(*this, "MODIFIERS")
5355   { }
5456
5557   required_device<cosmac_device> m_maincpu;
r20582r20583
5860   required_device<cassette_image_device> m_cassette;
5961   required_device<ram_device> m_ram;
6062   required_device<comx_expansion_slot_device> m_exp;
63   required_memory_region m_rom;
64   optional_shared_ptr<UINT8> m_char_ram;
65   required_ioport m_d6;
6166   required_ioport m_modifiers;
62   optional_shared_ptr<UINT8> m_char_ram;
6367
6468   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
6569   virtual void machine_start();
r20582r20583
97101   int m_int;                  // interrupt request
98102   int m_prd;                  // predisplay
99103   int m_cr1;                  // interrupt enable
100
101   const UINT8 *m_rom;
102104};
103105
104106// ---------- defined in video/comx35.c ----------
trunk/src/mess/includes/super6.h
r20582r20583
4040         m_ram(*this, RAM_TAG),
4141         m_floppy0(*this, WD2793_TAG":0"),
4242         m_floppy1(*this, WD2793_TAG":1"),
43         m_terminal(*this, TERMINAL_TAG)
43         m_terminal(*this, TERMINAL_TAG),
44         m_rom(*this, Z80_TAG)
4445   { }
4546
4647   required_device<cpu_device> m_maincpu;
r20582r20583
5455   required_device<floppy_connector> m_floppy0;
5556   required_device<floppy_connector> m_floppy1;
5657   required_device<serial_terminal_device> m_terminal;
58   required_memory_region m_rom;
5759
5860   virtual void machine_start();
5961   virtual void machine_reset();
trunk/src/mess/includes/aquarius.h
r20582r20583
2424        m_cassette(*this, CASSETTE_TAG),
2525        m_speaker(*this, SPEAKER_TAG),
2626        m_screen(*this, "screen"),
27        m_ram(*this, RAM_TAG),
28        m_rom(*this, "maincpu"),
2729        m_videoram(*this, "videoram"),
2830        m_colorram(*this, "colorram"),
2931        m_y0(*this, "Y0"),
r20582r20583
4042   required_device<cassette_image_device> m_cassette;
4143   required_device<speaker_sound_device> m_speaker;
4244   required_device<screen_device> m_screen;
45   required_device<ram_device> m_ram;
46   required_memory_region m_rom;
4347   required_shared_ptr<UINT8> m_videoram;
4448   required_shared_ptr<UINT8> m_colorram;
4549   required_ioport m_y0;
trunk/src/mess/includes/tmc1800.h
r20582r20583
2828      : driver_device(mconfig, type, tag),
2929         m_maincpu(*this, CDP1802_TAG),
3030         m_vdc(*this, CDP1861_TAG),
31         m_cassette(*this, CASSETTE_TAG)
31         m_cassette(*this, CASSETTE_TAG),
32         m_ram(*this, RAM_TAG),
33         m_rom(*this, CDP1802_TAG),
34         m_run(*this, "RUN")
3235   { }
3336
3437   required_device<cpu_device> m_maincpu;
3538   required_device<cdp1861_device> m_vdc;
3639   required_device<cassette_image_device> m_cassette;
40   required_device<ram_device> m_ram;
41   required_memory_region m_rom;
42   required_ioport m_run;
3743
3844   virtual void machine_start();
3945   virtual void machine_reset();
r20582r20583
5864   osc1000b_state(const machine_config &mconfig, device_type type, const char *tag)
5965      : driver_device(mconfig, type, tag),
6066         m_maincpu(*this, CDP1802_TAG),
61         m_cassette(*this, CASSETTE_TAG)
67         m_cassette(*this, CASSETTE_TAG),
68         m_rom(*this, CDP1802_TAG),
69         m_run(*this, "RUN")
6270   { }
6371
6472   required_device<cpu_device> m_maincpu;
6573   required_device<cassette_image_device> m_cassette;
74   required_memory_region m_rom;
75   required_ioport m_run;
6676
6777   virtual void machine_start();
6878   virtual void machine_reset();
r20582r20583
8797         m_maincpu(*this, CDP1802_TAG),
8898         m_cti(*this, CDP1864_TAG),
8999         m_cassette(*this, CASSETTE_TAG),
90         m_ram(*this, RAM_TAG)
100         m_ram(*this, RAM_TAG),
101         m_rom(*this, CDP1802_TAG),
102         m_colorram(*this, "color_ram"),
103         m_in0(*this, "IN0"),
104         m_in1(*this, "IN1"),
105         m_in2(*this, "IN2"),
106         m_in3(*this, "IN3"),
107         m_in4(*this, "IN4"),
108         m_in5(*this, "IN5"),
109         m_in6(*this, "IN6"),
110         m_in7(*this, "IN7"),
111         m_run(*this, "RUN")
91112   { }
92113
93114   required_device<cpu_device> m_maincpu;
94115   required_device<cdp1864_device> m_cti;
95116   required_device<cassette_image_device> m_cassette;
96117   required_device<ram_device> m_ram;
118   required_memory_region m_rom;
119   optional_shared_ptr<UINT8> m_colorram;
120   required_ioport m_in0;
121   required_ioport m_in1;
122   required_ioport m_in2;
123   required_ioport m_in3;
124   required_ioport m_in4;
125   required_ioport m_in5;
126   required_ioport m_in6;
127   required_ioport m_in7;
128   required_ioport m_run;
97129
98130   virtual void machine_start();
99131   virtual void machine_reset();
r20582r20583
117149   int m_roc;
118150
119151   /* video state */
120   UINT8 *m_colorram;      /* color memory */
121152   UINT8 m_color;
122153
123154   /* keyboard state */
r20582r20583
132163         m_maincpu(*this, CDP1802_TAG),
133164         m_cti(*this, CDP1864_TAG),
134165         m_cassette(*this, CASSETTE_TAG),
135         m_ram(*this, RAM_TAG)
166         m_ram(*this, RAM_TAG),
167         m_rom(*this, CDP1802_TAG),
168         m_ny0(*this, "NY0"),
169         m_ny1(*this, "NY1"),
170         m_run(*this, "RUN"),
171         m_monitor(*this, "MONITOR")
136172   { }
137173
138174   required_device<cpu_device> m_maincpu;
139175   required_device<cdp1864_device> m_cti;
140176   required_device<cassette_image_device> m_cassette;
141177   required_device<ram_device> m_ram;
178   required_memory_region m_rom;
179   required_ioport m_ny0;
180   required_ioport m_ny1;
181   required_ioport m_run;
182   required_ioport m_monitor;
142183
143184   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
144185   virtual void machine_start();
trunk/src/mess/includes/mpf1.h
r20582r20583
3030         m_maincpu(*this, Z80_TAG),
3131         m_ctc(*this, Z80CTC_TAG),
3232         m_speaker(*this, SPEAKER_TAG),
33         m_cassette(*this, CASSETTE_TAG)
33         m_cassette(*this, CASSETTE_TAG),
34         m_pc0(*this, "PC0"),
35         m_pc1(*this, "PC1"),
36         m_pc2(*this, "PC2"),
37         m_pc3(*this, "PC3"),
38         m_pc4(*this, "PC4"),
39         m_pc5(*this, "PC5"),
40         m_special(*this, "SPECIAL")
3441   { }
3542
3643   required_device<cpu_device> m_maincpu;
3744   required_device<z80ctc_device> m_ctc;
3845   required_device<speaker_sound_device> m_speaker;
3946   required_device<cassette_image_device> m_cassette;
47   required_ioport m_pc0;
48   required_ioport m_pc1;
49   required_ioport m_pc2;
50   required_ioport m_pc3;
51   required_ioport m_pc4;
52   required_ioport m_pc5;
53   required_ioport m_special;
4054
4155   virtual void machine_start();
4256   virtual void machine_reset();
trunk/src/mess/includes/tek405x.h
r20582r20583
33#ifndef __TEK405X__
44#define __TEK405X__
55
6#include "emu.h"
7#include "cpu/m6800/m6800.h"
8#include "imagedev/cartslot.h"
69#include "machine/ram.h"
10#include "machine/6821pia.h"
11#include "machine/6850acia.h"
12#include "machine/ieee488.h"
13#include "machine/ram.h"
14#include "sound/speaker.h"
15#include "video/vector.h"
716
817#define MC6800_TAG          "u61"
918#define MC6820_Y_TAG        "u561"
r20582r20583
2938         m_acia(*this, MC6850_TAG),
3039         m_gpib(*this, IEEE488_TAG),
3140         m_speaker(*this, SPEAKER_TAG),
32         m_ram(*this, RAM_TAG)
41         m_ram(*this, RAM_TAG),
42         m_rom(*this, MC6800_TAG),
43         m_bsofl_rom(*this, "020_0147_00"),
44         m_bscom_rom(*this, "021_0188_00"),
45         m_special(*this, "SPECIAL")
3346      { }
3447
3548   required_device<cpu_device> m_maincpu;
r20582r20583
3952   required_device<ieee488_device> m_gpib;
4053   required_device<speaker_sound_device> m_speaker;
4154   required_device<ram_device> m_ram;
55   required_memory_region m_rom;
56   required_memory_region m_bsofl_rom;
57   required_memory_region m_bscom_rom;
58   required_ioport m_special;
4259
4360   virtual void machine_start();
4461
trunk/src/mess/includes/beta.h
r20582r20583
2424      : driver_device(mconfig, type, tag),
2525         m_maincpu(*this, M6502_TAG),
2626         m_speaker(*this, SPEAKER_TAG),
27         m_eprom(*this, EPROM_TAG),
2728         m_q6(*this, "Q6"),
2829         m_q7(*this, "Q7"),
2930         m_q8(*this, "Q8"),
r20582r20583
3233
3334   required_device<cpu_device> m_maincpu;
3435   required_device<speaker_sound_device> m_speaker;
36   required_memory_region m_eprom;
3537   required_ioport m_q6;
3638   required_ioport m_q7;
3739   required_ioport m_q8;
r20582r20583
4648   DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
4749
4850   /* EPROM state */
49   UINT8 *m_eprom;
5051   int m_eprom_oe;
5152   int m_eprom_ce;
5253   UINT16 m_eprom_addr;
trunk/src/mess/includes/kyocera.h
r20582r20583
6767         m_centronics(*this, CENTRONICS_TAG),
6868         m_speaker(*this, SPEAKER_TAG),
6969         m_cassette(*this, CASSETTE_TAG),
70         m_ram(*this, RAM_TAG)
70         m_ram(*this, RAM_TAG),
71         m_rom(*this, I8085_TAG),
72         m_option(*this, "option"),
73         m_y0(*this, "Y0"),
74         m_y1(*this, "Y1"),
75         m_y2(*this, "Y2"),
76         m_y3(*this, "Y3"),
77         m_y4(*this, "Y4"),
78         m_y5(*this, "Y5"),
79         m_y6(*this, "Y6"),
80         m_y7(*this, "Y7"),
81         m_y8(*this, "Y8"),
82         m_battery(*this, "BATTERY")
7183   { }
7284
7385   required_device<cpu_device> m_maincpu;
r20582r20583
8799   required_device<speaker_sound_device> m_speaker;
88100   required_device<cassette_image_device> m_cassette;
89101   required_device<ram_device> m_ram;
102   required_memory_region m_rom;
103   required_memory_region m_option;
104   required_ioport m_y0;
105   required_ioport m_y1;
106   required_ioport m_y2;
107   required_ioport m_y3;
108   required_ioport m_y4;
109   required_ioport m_y5;
110   required_ioport m_y6;
111   required_ioport m_y7;
112   required_ioport m_y8;
113   required_ioport m_battery;
90114
91115   virtual void machine_start();
92116
r20582r20583
166190         m_centronics(*this, CENTRONICS_TAG),
167191         m_speaker(*this, SPEAKER_TAG),
168192         m_cassette(*this, CASSETTE_TAG),
169         m_ram(*this, RAM_TAG)
193         m_ram(*this, RAM_TAG),
194         m_rom(*this, I8085_TAG),
195         m_option(*this, "option"),
196         m_y0(*this, "Y0"),
197         m_y1(*this, "Y1"),
198         m_y2(*this, "Y2"),
199         m_y3(*this, "Y3"),
200         m_y4(*this, "Y4"),
201         m_y5(*this, "Y5"),
202         m_y6(*this, "Y6"),
203         m_y7(*this, "Y7"),
204         m_y8(*this, "Y8")
170205   { }
171206
172207   required_device<cpu_device> m_maincpu;
r20582r20583
176211   required_device<speaker_sound_device> m_speaker;
177212   required_device<cassette_image_device> m_cassette;
178213   required_device<ram_device> m_ram;
214   required_memory_region m_rom;
215   required_memory_region m_option;
216   required_ioport m_y0;
217   required_ioport m_y1;
218   required_ioport m_y2;
219   required_ioport m_y3;
220   required_ioport m_y4;
221   required_ioport m_y5;
222   required_ioport m_y6;
223   required_ioport m_y7;
224   required_ioport m_y8;
179225
180226   virtual void machine_start();
181227
trunk/src/mess/includes/atom.h
r20582r20583
4848         m_cassette(*this, CASSETTE_TAG),
4949         m_centronics(*this, CENTRONICS_TAG),
5050         m_speaker(*this, SPEAKER_TAG),
51         m_extrom(*this, EXTROM_TAG),
5152         m_y0(*this, "Y0"),
5253         m_y1(*this, "Y1"),
5354         m_y2(*this, "Y2"),
r20582r20583
6869   required_device<cassette_image_device> m_cassette;
6970   required_device<centronics_device> m_centronics;
7071   required_device<speaker_sound_device> m_speaker;
72   required_memory_region m_extrom;
7173   required_ioport m_y0;
7274   required_ioport m_y1;
7375   required_ioport m_y2;
trunk/src/mess/includes/lc80.h
r20582r20583
2727         m_pio2(*this, Z80PIO2_TAG),
2828         m_cassette(*this, CASSETTE_TAG),
2929         m_speaker(*this, SPEAKER_TAG),
30         m_ram(*this, RAM_TAG)
30         m_ram(*this, RAM_TAG),
31         m_rom(*this, Z80_TAG),
32         m_y0(*this, "Y0"),
33         m_y1(*this, "Y1"),
34         m_y2(*this, "Y2"),
35         m_y3(*this, "Y3")
3136   { }
3237
3338   required_device<cpu_device> m_maincpu;
r20582r20583
3540   required_device<cassette_image_device> m_cassette;
3641   required_device<speaker_sound_device> m_speaker;
3742   required_device<ram_device> m_ram;
43   required_memory_region m_rom;
44   required_ioport m_y0;
45   required_ioport m_y1;
46   required_ioport m_y2;
47   required_ioport m_y3;
3848
3949   virtual void machine_start();
4050
trunk/src/mess/includes/tiki100.h
r20582r20583
4141         m_ram(*this, RAM_TAG),
4242         m_floppy0(*this, FD1797_TAG":0"),
4343         m_floppy1(*this, FD1797_TAG":1"),
44         m_video_ram(*this, "video_ram")
44         m_rom(*this, Z80_TAG),
45         m_video_ram(*this, "video_ram"),
46         m_y1(*this, "Y1"),
47         m_y2(*this, "Y2"),
48         m_y3(*this, "Y3"),
49         m_y4(*this, "Y4"),
50         m_y5(*this, "Y5"),
51         m_y6(*this, "Y6"),
52         m_y7(*this, "Y7"),
53         m_y8(*this, "Y8"),
54         m_y9(*this, "Y9"),
55         m_y10(*this, "Y10"),
56         m_y11(*this, "Y11"),
57         m_y12(*this, "Y12")   
4558   { }
4659
4760   required_device<cpu_device> m_maincpu;
r20582r20583
5063   required_device<ram_device> m_ram;
5164   required_device<floppy_connector> m_floppy0;
5265   required_device<floppy_connector> m_floppy1;
66   required_memory_region m_rom;
5367   optional_shared_ptr<UINT8> m_video_ram;
68   required_ioport m_y1;
69   required_ioport m_y2;
70   required_ioport m_y3;
71   required_ioport m_y4;
72   required_ioport m_y5;
73   required_ioport m_y6;
74   required_ioport m_y7;
75   required_ioport m_y8;
76   required_ioport m_y9;
77   required_ioport m_y10;
78   required_ioport m_y11;
79   required_ioport m_y12;
5480
5581   virtual void machine_start();
5682
trunk/src/mess/includes/m5.h
r20582r20583
2727         m_cassette(*this, CASSETTE_TAG),
2828         m_centronics(*this, CENTRONICS_TAG),
2929         m_ram(*this, RAM_TAG),
30         m_floppy0(*this, UPD765_TAG ":0:525dd")
30         m_floppy0(*this, UPD765_TAG ":0:525dd"),
31         m_reset(*this, "RESET")
3132   { }
3233
3334   required_device<cpu_device> m_maincpu;
r20582r20583
3940   required_device<centronics_device> m_centronics;
4041   required_device<ram_device> m_ram;
4142   required_device<floppy_image_device> m_floppy0;
43   required_ioport m_reset;
4244
4345   virtual void machine_start();
4446   virtual void machine_reset();
trunk/src/mess/includes/crvision.h
r20582r20583
88#include "cpu/m6502/m6502.h"
99#include "imagedev/cartslot.h"
1010#include "imagedev/cassette.h"
11#include "imagedev/flopdrv.h"
12#include "formats/basicdsk.h"
11#include "machine/6821pia.h"
1312#include "machine/ctronics.h"
14#include "machine/6821pia.h"
13#include "machine/ram.h"
1514#include "sound/sn76496.h"
1615#include "sound/wave.h"
1716#include "video/tms9928a.h"
18#include "machine/ram.h"
1917
2018#define SCREEN_TAG      "screen"
2119#define M6502_TAG       "u2"
r20582r20583
7977{
8078public:
8179   laser2001_state(const machine_config &mconfig, device_type type, const char *tag)
82      : crvision_state(mconfig, type, tag)
80      : crvision_state(mconfig, type, tag),
81         m_y0(*this, "Y0"),
82         m_y1(*this, "Y1"),
83         m_y2(*this, "Y2"),
84         m_y3(*this, "Y3"),
85         m_y4(*this, "Y4"),
86         m_y5(*this, "Y5"),
87         m_y6(*this, "Y6"),
88         m_y7(*this, "Y7"),
89         m_joy0(*this, "JOY0"),
90         m_joy1(*this, "JOY1"),
91         m_joy2(*this, "JOY2"),
92         m_joy3(*this, "JOY3")
8393   { }
8494
8595   virtual void machine_start();
r20582r20583
92102   DECLARE_WRITE_LINE_MEMBER( pia_ca2_w );
93103   DECLARE_READ_LINE_MEMBER( pia_cb1_r );
94104   DECLARE_WRITE_LINE_MEMBER( pia_cb2_w );
105
106   required_ioport m_y0;
107   required_ioport m_y1;
108   required_ioport m_y2;
109   required_ioport m_y3;
110   required_ioport m_y4;
111   required_ioport m_y5;
112   required_ioport m_y6;
113   required_ioport m_y7;
114   required_ioport m_joy0;
115   required_ioport m_joy1;
116   required_ioport m_joy2;
117   required_ioport m_joy3;
95118};
96119
97120#endif
trunk/src/mess/includes/c64.h
r20582r20583
4848         m_user(*this, C64_USER_PORT_TAG),
4949         m_ram(*this, RAM_TAG),
5050         m_cassette(*this, PET_DATASSETTE_PORT_TAG),
51         m_basic(*this, "basic"),
52         m_kernal(*this, "kernal"),
5153         m_charom(*this, "charom"),
5254         m_color_ram(*this, "color_ram"),
5355         m_row0(*this, "ROW0"),
r20582r20583
8789   required_device<c64_user_port_device> m_user;
8890   required_device<ram_device> m_ram;
8991   optional_device<pet_datassette_port_device> m_cassette;
92   optional_memory_region m_basic;
93   required_memory_region m_kernal;
9094   required_memory_region m_charom;
9195   optional_shared_ptr<UINT8> m_color_ram;
9296   optional_ioport m_row0;
r20582r20583
145149   int m_loram;
146150   int m_hiram;
147151   int m_charen;
148   UINT8 *m_basic;
149   UINT8 *m_kernal;
150152
151153   // video state
152154   int m_va14;
r20582r20583
182184   c64c_state(const machine_config &mconfig, device_type type, const char *tag)
183185      : c64_state(mconfig, type, tag)
184186   { }
185
186   virtual void machine_start();
187187};
188188
189189
r20582r20583
194194      : c64c_state(mconfig, type, tag)
195195   { }
196196
197   virtual void machine_start();
198
199197   DECLARE_READ8_MEMBER( cpu_r );
200198   DECLARE_WRITE8_MEMBER( cpu_w );
201199
trunk/src/mess/includes/mc1000.h
r20582r20583
3333         m_centronics(*this, CENTRONICS_TAG),
3434         m_cassette(*this, CASSETTE_TAG),
3535         m_ram(*this, RAM_TAG),
36         m_rom(*this, Z80_TAG),
3637         m_mc6845_video_ram(*this, "mc6845_vram"),
37         m_mc6847_video_ram(*this, "mc6847_vram")
38         m_mc6847_video_ram(*this, "mc6847_vram"),
39         m_y0(*this, "Y0"),
40         m_y1(*this, "Y1"),
41         m_y2(*this, "Y2"),
42         m_y3(*this, "Y3"),
43         m_y4(*this, "Y4"),
44         m_y5(*this, "Y5"),
45         m_y6(*this, "Y6"),
46         m_y7(*this, "Y7"),
47         m_joya(*this, "JOYA"),
48         m_joyb(*this, "JOYB"),
49         m_modifiers(*this, "MODIFIERS"),
50         m_joyakeymap(*this, "JOYAKEYMAP"),
51         m_joybkeymap(*this, "JOYBKEYMAP")
3852   { }
3953
4054   required_device<cpu_device> m_maincpu;
r20582r20583
4357   required_device<centronics_device> m_centronics;
4458   required_device<cassette_image_device> m_cassette;
4559   required_device<ram_device> m_ram;
60   required_memory_region m_rom;
61   required_shared_ptr<UINT8> m_mc6845_video_ram;
62   required_shared_ptr<UINT8> m_mc6847_video_ram;
63   required_ioport m_y0;
64   required_ioport m_y1;
65   required_ioport m_y2;
66   required_ioport m_y3;
67   required_ioport m_y4;
68   required_ioport m_y5;
69   required_ioport m_y6;
70   required_ioport m_y7;
71   required_ioport m_joya;
72   required_ioport m_joyb;
73   required_ioport m_modifiers;
74   required_ioport m_joyakeymap;
75   required_ioport m_joybkeymap;
4676
4777   virtual void machine_start();
4878   virtual void machine_reset();
r20582r20583
76106   /* video state */
77107   int m_hsync;
78108   int m_vsync;
79   required_shared_ptr<UINT8> m_mc6845_video_ram;
80   required_shared_ptr<UINT8> m_mc6847_video_ram;
81109   UINT8 m_mc6847_attr;
110
82111   DECLARE_DRIVER_INIT(mc1000);
83112   TIMER_DEVICE_CALLBACK_MEMBER(ne555_tick);
84113};
trunk/src/mess/includes/newbrain.h
r20582r20583
6060         m_maincpu(*this, Z80_TAG),
6161         m_copcpu(*this, COP420_TAG),
6262         m_cassette1(*this, CASSETTE_TAG),
63         m_cassette2(*this, CASSETTE2_TAG)
63         m_cassette2(*this, CASSETTE2_TAG),
64         m_rom(*this, Z80_TAG),
65         m_eim_rom(*this, "eim"),
66         m_char_rom(*this, "chargen"),
67         m_y0(*this, "Y0"),
68         m_y1(*this, "Y1"),
69         m_y2(*this, "Y2"),
70         m_y3(*this, "Y3"),
71         m_y4(*this, "Y4"),
72         m_y5(*this, "Y5"),
73         m_y6(*this, "Y6"),
74         m_y7(*this, "Y7"),
75         m_y8(*this, "Y8"),
76         m_y9(*this, "Y9"),
77         m_y10(*this, "Y10"),
78         m_y11(*this, "Y11"),
79         m_y12(*this, "Y12"),
80         m_y13(*this, "Y13"),
81         m_y14(*this, "Y14"),
82         m_y15(*this, "Y15")
6483   { }
6584
6685   required_device<cpu_device> m_maincpu;
6786   required_device<cpu_device> m_copcpu;
6887   required_device<cassette_image_device> m_cassette1;
6988   required_device<cassette_image_device> m_cassette2;
89   required_memory_region m_rom;
90   optional_memory_region m_eim_rom;
91   required_memory_region m_char_rom;
92   required_ioport m_y0;
93   required_ioport m_y1;
94   required_ioport m_y2;
95   required_ioport m_y3;
96   required_ioport m_y4;
97   required_ioport m_y5;
98   required_ioport m_y6;
99   required_ioport m_y7;
100   required_ioport m_y8;
101   required_ioport m_y9;
102   required_ioport m_y10;
103   required_ioport m_y11;
104   required_ioport m_y12;
105   required_ioport m_y13;
106   required_ioport m_y14;
107   required_ioport m_y15;
70108
71109   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
72110   virtual void machine_start();
r20582r20583
145183   int m_tvcnsl;           // TV console required
146184   int m_tvctl;            // TV control register
147185   UINT16 m_tvram;         // TV start address
148   UINT8 *m_char_rom;      // character ROM
149186
150187   // user bus state
151188   UINT8 m_user;
r20582r20583
155192   int m_copstate;
156193   int m_copbytes;
157194   int m_copregint;
195
158196   INTERRUPT_GEN_MEMBER(newbrain_interrupt);
159197   TIMER_DEVICE_CALLBACK_MEMBER(cop_regint_tick);
160198};
trunk/src/mess/includes/phc25.h
r20582r20583
2828         m_maincpu(*this, Z80_TAG),
2929         m_vdg(*this, MC6847_TAG),
3030         m_centronics(*this, CENTRONICS_TAG),
31         m_cassette(*this, CASSETTE_TAG)
32   ,
33      m_video_ram(*this, "video_ram"){ }
31         m_cassette(*this, CASSETTE_TAG),
32         m_video_ram(*this, "video_ram")
33   { }
3434
3535   required_device<cpu_device> m_maincpu;
3636   required_device<mc6847_base_device> m_vdg;
trunk/src/mess/includes/huebler.h
r20582r20583
2323   amu880_state(const machine_config &mconfig, device_type type, const char *tag)
2424      : driver_device(mconfig, type, tag),
2525         m_cassette(*this, CASSETTE_TAG),
26         m_kb_rom(*this, "keyboard"),
27         m_char_rom(*this, "chargen"),
28         m_video_ram(*this, "video_ram"),
29         m_y0(*this, "Y0"),
30         m_y1(*this, "Y1"),
31         m_y2(*this, "Y2"),
32         m_y3(*this, "Y3"),
33         m_y4(*this, "Y4"),
34         m_y5(*this, "Y5"),
35         m_y6(*this, "Y6"),
36         m_y7(*this, "Y7"),
37         m_y8(*this, "Y8"),
38         m_y9(*this, "Y9"),
39         m_y10(*this, "Y10"),
40         m_y11(*this, "Y11"),
41         m_y12(*this, "Y12"),
42         m_y13(*this, "Y13"),
43         m_y14(*this, "Y14"),
44         m_y15(*this, "Y15"),
45         m_special(*this, "SPECIAL"),
2646         m_key_d6(0),
2747         m_key_d7(0),
28         m_key_a8(1),
29         m_video_ram(*this, "video_ram")
48         m_key_a8(1)
3049   { }
3150
3251   required_device<cassette_image_device> m_cassette;
52   required_memory_region m_kb_rom;
53   required_memory_region m_char_rom;
54   required_shared_ptr<UINT8> m_video_ram;
55   required_ioport m_y0;
56   required_ioport m_y1;
57   required_ioport m_y2;
58   required_ioport m_y3;
59   required_ioport m_y4;
60   required_ioport m_y5;
61   required_ioport m_y6;
62   required_ioport m_y7;
63   required_ioport m_y8;
64   required_ioport m_y9;
65   required_ioport m_y10;
66   required_ioport m_y11;
67   required_ioport m_y12;
68   required_ioport m_y13;
69   required_ioport m_y14;
70   required_ioport m_y15;
71   required_ioport m_special;
3372
3473   virtual void machine_start();
3574
36   virtual void video_start();
3775   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3876
3977   DECLARE_READ8_MEMBER( keyboard_r );
r20582r20583
4179   void scan_keyboard();
4280
4381   // keyboard state
44   const UINT8 *m_kb_rom;
4582   int m_key_d6;
4683   int m_key_d7;
4784   int m_key_a4;
r20582r20583
4986   int m_key_a8;
5087
5188   // video state
52   required_shared_ptr<UINT8> m_video_ram;
53   const UINT8 *m_char_rom;
5489   TIMER_DEVICE_CALLBACK_MEMBER(keyboard_tick);
5590   DECLARE_WRITE_LINE_MEMBER(ctc_z0_w);
5691   DECLARE_WRITE_LINE_MEMBER(ctc_z2_w);
trunk/src/mess/includes/xor100.h
r20582r20583
4343         m_floppy0(*this, WD1795_TAG":0"),
4444         m_floppy1(*this, WD1795_TAG":1"),
4545         m_floppy2(*this, WD1795_TAG":2"),
46         m_floppy3(*this, WD1795_TAG":3")
46         m_floppy3(*this, WD1795_TAG":3"),
47         m_rom(*this, Z80_TAG)
4748   { }
4849
4950   required_device<cpu_device> m_maincpu;
r20582r20583
6061   required_device<floppy_connector> m_floppy1;
6162   required_device<floppy_connector> m_floppy2;
6263   required_device<floppy_connector> m_floppy3;
64   required_memory_region m_rom;
6365
6466   virtual void machine_start();
6567   virtual void machine_reset();
trunk/src/mess/includes/vip.h
r20582r20583
3131         m_byteio(*this, VIP_BYTEIO_PORT_TAG),
3232         m_exp(*this, VIP_EXPANSION_SLOT_TAG),
3333         m_ram(*this, RAM_TAG),
34         m_rom(*this, CDP1802_TAG),
35         m_chip8(*this, "chip8"),
36         m_chip8x(*this, "chip8x"),
3437         m_run(*this, "RUN"),
3538         m_keypad(*this, "KEYPAD"),
39         m_io_beeper(*this, "BEEPER"),
3640         m_8000(1),
3741         m_vdc_int(CLEAR_LINE),
3842         m_vdc_dma_out(CLEAR_LINE),
r20582r20583
5458   required_device<vip_byteio_port_device> m_byteio;
5559   required_device<vip_expansion_slot_device> m_exp;
5660   required_device<ram_device> m_ram;
61   required_memory_region m_rom;
62   required_memory_region m_chip8;
63   required_memory_region m_chip8x;
5764   required_ioport m_run;
5865   required_ioport m_keypad;
66   required_ioport m_io_beeper;
5967
6068   virtual void machine_start();
6169   virtual void machine_reset();
trunk/src/mess/includes/elf.h
r20582r20583
3232         m_led_l(*this, DM9368_L_TAG),
3333         m_led_h(*this, DM9368_H_TAG),
3434         m_cassette(*this, CASSETTE_TAG),
35         m_ram(*this, RAM_TAG)
35         m_ram(*this, RAM_TAG),
36         m_special(*this, "SPECIAL")
3637   { }
3738
3839   required_device<cpu_device> m_maincpu;
r20582r20583
4243   required_device<dm9368_device> m_led_h;
4344   required_device<cassette_image_device> m_cassette;
4445   required_device<ram_device> m_ram;
46   required_ioport m_special;
4547
4648   virtual void machine_start();
4749
trunk/src/mess/includes/tmc600.h
r20582r20583
3131         m_vis(*this, CDP1869_TAG),
3232         m_cassette(*this, CASSETTE_TAG),
3333         m_ram(*this, RAM_TAG),
34         m_char_rom(*this, "chargen"),
3435         m_page_ram(*this, "page_ram"),
3536         m_color_ram(*this, "color_ram"),
3637         m_run(*this, "RUN"),
r20582r20583
4849   required_device<cdp1869_device> m_vis;
4950   required_device<cassette_image_device> m_cassette;
5051   required_device<ram_device> m_ram;
52   required_memory_region m_char_rom;
5153   required_shared_ptr<UINT8> m_page_ram;
5254   optional_shared_ptr<UINT8> m_color_ram;
5355   required_ioport m_run;
r20582r20583
8183   int m_vismac_bkg_latch;     // background color latch
8284   int m_blink;                // cursor blink
8385
84   const UINT8 *m_char_rom;
85
8686   // keyboard state
8787   int m_keylatch;             // key latch
8888   TIMER_DEVICE_CALLBACK_MEMBER(blink_tick);
trunk/src/mess/includes/v1050.h
r20582r20583
7878         m_timer_ack(*this, TIMER_ACK_TAG),
7979         m_timer_rst(*this, TIMER_RST_TAG),
8080         m_sasibus(*this, SASIBUS_TAG ":host"),
81         m_rom(*this, Z80_TAG),
8182         m_video_ram(*this, "video_ram"),
8283         m_attr_ram(*this, "attr_ram")
8384   { }
r20582r20583
100101   required_device<timer_device> m_timer_ack;
101102   required_device<timer_device> m_timer_rst;
102103   required_device<scsicb_device> m_sasibus;
104   required_memory_region m_rom;
103105   required_shared_ptr<UINT8> m_video_ram;
104106   optional_shared_ptr<UINT8> m_attr_ram;
105107
trunk/src/mess/includes/prof80.h
r20582r20583
3535         m_rtc(*this, UPD1990A_TAG),
3636         m_fdc(*this, UPD765_TAG),
3737         m_ram(*this, RAM_TAG),
38         m_floppy0(*this, UPD765_TAG ":0:525hd"),
39         m_floppy1(*this, UPD765_TAG ":0:525hd"),
40         m_ecb(*this, ECBBUS_TAG)
38         m_floppy0(*this, UPD765_TAG":0"),
39         m_floppy1(*this, UPD765_TAG":1"),
40         m_ecb(*this, ECBBUS_TAG),
41         m_rom(*this, Z80_TAG),
42         m_j4(*this, "J4"),
43         m_j5(*this, "J5")
4144   { }
4245
4346   required_device<cpu_device> m_maincpu;
4447   required_device<upd1990a_device> m_rtc;
4548   required_device<upd765a_device> m_fdc;
4649   required_device<ram_device> m_ram;
47   optional_device<floppy_image_device> m_floppy0;
48   optional_device<floppy_image_device> m_floppy1;
50   required_device<floppy_connector> m_floppy0;
51   required_device<floppy_connector> m_floppy1;
4952   required_device<ecbbus_device> m_ecb;
53   required_memory_region m_rom;
54   required_ioport m_j4;
55   required_ioport m_j5;
5056
5157   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
5258   virtual void machine_start();
trunk/src/mess/includes/pc8401a.h
r20582r20583
3737         m_lcdc(*this, SED1330_TAG),
3838         m_crtc(*this, MC6845_TAG),
3939         m_screen_lcd(*this, SCREEN_TAG),
40         m_ram(*this, RAM_TAG)
40         m_ram(*this, RAM_TAG),
41         m_rom(*this, Z80_TAG),
42         m_io_rom(*this, "iorom"),
43         m_crt_ram(*this, "crt_ram"),
44         m_y0(*this, "Y0"),
45         m_y1(*this, "Y1"),
46         m_y2(*this, "Y2"),
47         m_y3(*this, "Y3"),
48         m_y4(*this, "Y4"),
49         m_y5(*this, "Y5"),
50         m_y6(*this, "Y6"),
51         m_y7(*this, "Y7"),
52         m_y8(*this, "Y8"),
53         m_y9(*this, "Y9")
4154   { }
4255
4356   required_device<cpu_device> m_maincpu;
r20582r20583
4659   required_device<mc6845_device> m_crtc;
4760   required_device<screen_device> m_screen_lcd;
4861   required_device<ram_device> m_ram;
62   required_memory_region m_rom;
63   required_memory_region m_io_rom;
64   optional_shared_ptr<UINT8> m_crt_ram;
65   required_ioport m_y0;
66   required_ioport m_y1;
67   required_ioport m_y2;
68   required_ioport m_y3;
69   required_ioport m_y4;
70   required_ioport m_y5;
71   required_ioport m_y6;
72   required_ioport m_y7;
73   required_ioport m_y8;
74   required_ioport m_y9;
4975
5076   virtual void machine_start();
5177
r20582r20583
76102   UINT8 m_mmr;                // memory mapping register
77103   UINT32 m_io_addr;           // I/O ROM address counter
78104
79   // video state
80   UINT8 *m_crt_ram;           // CRT video RAM
81
82105   UINT8 m_key_latch;
83106   TIMER_DEVICE_CALLBACK_MEMBER(pc8401a_keyboard_tick);
84107};
trunk/src/mess/includes/xerox820.h
r20582r20583
4848         m_ram(*this, RAM_TAG),
4949         m_floppy0(*this, FD1771_TAG":0"),
5050         m_floppy1(*this, FD1771_TAG":1"),
51         m_rom(*this, Z80_TAG),
52         m_char_rom(*this, "chargen"),
5153         m_video_ram(*this, "video_ram"),
5254         m_fdc_irq(0),
5355         m_fdc_drq(0),
r20582r20583
5860   virtual void machine_start();
5961   virtual void machine_reset();
6062
61   virtual void video_start();
6263   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6364
6465   required_device<cpu_device> m_maincpu;
r20582r20583
6869   required_device<ram_device> m_ram;
6970   required_device<floppy_connector> m_floppy0;
7071   required_device<floppy_connector> m_floppy1;
72   required_memory_region m_rom;
73   required_memory_region m_char_rom;
74   required_shared_ptr<UINT8> m_video_ram;
7175
7276   DECLARE_READ8_MEMBER( fdc_r );
7377   DECLARE_WRITE8_MEMBER( fdc_w );
r20582r20583
8993   int m_keydata;                      /* keyboard data */
9094
9195   /* video state */
92   required_shared_ptr<UINT8> m_video_ram;                     /* video RAM */
93   UINT8 *m_char_rom;                  /* character ROM */
9496   UINT8 m_scroll;                     /* vertical scroll */
9597   UINT8 m_framecnt;
9698   int m_ncset2;                       /* national character set */
trunk/src/mess/video/newbrain.c
r20582r20583
33
44void newbrain_state::video_start()
55{
6   /* find memory regions */
7   m_char_rom = memregion("chargen")->base();
8
96   /* register for state saving */
107   save_item(NAME(m_tvcnsl));
118   save_item(NAME(m_tvctl));
r20582r20583
4845         {
4946            /* render character rom data */
5047            UINT16 charrom_addr = (rc << 8) | ((BIT(videoram_data, 7) & fs) << 7) | (videoram_data & 0x7f);
51            charrom_data = m_char_rom[charrom_addr & 0xfff];
48            charrom_data = m_char_rom->base()[charrom_addr & 0xfff];
5249
5350            if ((videoram_data & 0x80) && !fs)
5451            {
trunk/src/mess/video/tmc600.c
r20582r20583
7878   UINT16 pageaddr = pma & TMC600_PAGE_RAM_MASK;
7979   UINT8 color = state->get_color(pageaddr);
8080   UINT16 charaddr = ((cma & 0x08) << 8) | (pmd << 3) | (cma & 0x07);
81   UINT8 cdb = state->m_char_rom[charaddr] & 0x3f;
81   UINT8 cdb = state->m_char_rom->base()[charaddr] & 0x3f;
8282
8383   int ccb0 = BIT(color, 2);
8484   int ccb1 = BIT(color, 1);
r20582r20583
112112   // allocate memory
113113   m_color_ram.allocate(TMC600_PAGE_RAM_SIZE);
114114
115   // find memory regions
116   m_char_rom = memregion("chargen")->base();
117
118115   // register for state saving
119116   save_item(NAME(m_vismac_reg_latch));
120117   save_item(NAME(m_vismac_color_latch));
trunk/src/mess/video/cgc7900.c
r20582r20583
140140      {
141141         UINT16 addr = (sy * 170) + (sx * 2);
142142         UINT32 cell = (m_overlay_ram[addr] << 16) | m_overlay_ram[addr + 1];
143         UINT8 data = m_char_rom[(OVERLAY_DATA << 3) | line];
143         UINT8 data = m_char_rom->base()[(OVERLAY_DATA << 3) | line];
144144         int fg = (cell >> 8) & 0x07;
145145         int bg = (cell >> 16) & 0x07;
146146
r20582r20583
179179}
180180
181181/*-------------------------------------------------
182    VIDEO_START( cgc7900 )
183-------------------------------------------------*/
184
185void cgc7900_state::video_start()
186{
187   /* find memory regions */
188   m_char_rom = memregion("gfx1")->base();
189}
190
191/*-------------------------------------------------
192182    SCREEN_UPDATE_IND16( cgc7900 )
193183-------------------------------------------------*/
194184
trunk/src/mess/drivers/vic20.c
r20582r20583
6262        * K-Star Patrol (Europe).60
6363        * Seafox (Japan, USA).60
6464    - mos6560_port_r/w should respond at 0x1000-0x100f
65    - SHIFT LOCK
66    - restore key
67    - light pen
6865    - VIC21 (built in 21K ram)
6966
7067*/
trunk/src/mess/drivers/eti660.c
r20582r20583
122122
123123READ_LINE_MEMBER( eti660_state::clear_r )
124124{
125   return BIT(ioport("SPECIAL")->read(), 0);
125   return BIT(m_special->read(), 0);
126126}
127127
128128READ_LINE_MEMBER( eti660_state::ef2_r )
129129{
130   return (m_cassette)->input() < 0;
130   return m_cassette->input() < 0;
131131}
132132
133133READ_LINE_MEMBER( eti660_state::ef4_r )
134134{
135   return BIT(ioport("SPECIAL")->read(), 1);
135   return BIT(m_special->read(), 1);
136136}
137137
138138WRITE_LINE_MEMBER( eti660_state::q_w )
r20582r20583
194194
195195   UINT8 data = 0xf0;
196196
197   if (!BIT(m_keylatch, 0)) data &= ioport("PA0")->read();
198   if (!BIT(m_keylatch, 1)) data &= ioport("PA1")->read();
199   if (!BIT(m_keylatch, 2)) data &= ioport("PA2")->read();
200   if (!BIT(m_keylatch, 3)) data &= ioport("PA3")->read();
197   if (!BIT(m_keylatch, 0)) data &= m_pa0->read();
198   if (!BIT(m_keylatch, 1)) data &= m_pa1->read();
199   if (!BIT(m_keylatch, 2)) data &= m_pa2->read();
200   if (!BIT(m_keylatch, 3)) data &= m_pa3->read();
201201
202202   return data;
203203}
trunk/src/mess/drivers/v1050.c
r20582r20583
10181018
10191019   membank("bank1")->configure_entries(0, 2, ram, 0x10000);
10201020   membank("bank1")->configure_entry(2, ram + 0x1c000);
1021   membank("bank1")->configure_entry(3, memregion(Z80_TAG)->base());
1021   membank("bank1")->configure_entry(3, m_rom->base());
10221022
10231023   program.install_readwrite_bank(0x2000, 0x3fff, "bank2");
10241024   membank("bank2")->configure_entries(0, 2, ram + 0x2000, 0x10000);
trunk/src/mess/drivers/ql.c
r20582r20583
247247
248248   UINT8 data = 0;
249249
250   if (BIT(m_keylatch, 0)) data |= ioport("ROW0")->read() | ioport("JOY0")->read();
251   if (BIT(m_keylatch, 1)) data |= ioport("ROW1")->read() | ioport("JOY1")->read();
252   if (BIT(m_keylatch, 2)) data |= ioport("ROW2")->read();
253   if (BIT(m_keylatch, 3)) data |= ioport("ROW3")->read();
254   if (BIT(m_keylatch, 4)) data |= ioport("ROW4")->read();
255   if (BIT(m_keylatch, 5)) data |= ioport("ROW5")->read();
256   if (BIT(m_keylatch, 6)) data |= ioport("ROW6")->read();
257   if (BIT(m_keylatch, 7)) data |= ioport("ROW7")->read();
250   if (BIT(m_keylatch, 0)) data |= m_y0->read() | m_joy0->read();
251   if (BIT(m_keylatch, 1)) data |= m_y1->read() | m_joy1->read();
252   if (BIT(m_keylatch, 2)) data |= m_y2->read();
253   if (BIT(m_keylatch, 3)) data |= m_y3->read();
254   if (BIT(m_keylatch, 4)) data |= m_y4->read();
255   if (BIT(m_keylatch, 5)) data |= m_y5->read();
256   if (BIT(m_keylatch, 6)) data |= m_y6->read();
257   if (BIT(m_keylatch, 7)) data |= m_y7->read();
258258
259259   return data;
260260}
r20582r20583
434434//-------------------------------------------------
435435
436436static INPUT_PORTS_START( ql )
437   PORT_START("ROW0")
437   PORT_START("Y0")
438438   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_NAME("F4")
439439   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_NAME("F1")
440440   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
r20582r20583
444444   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
445445   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
446446
447   PORT_START("ROW1")
447   PORT_START("Y1")
448448   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
449449   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
450450   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
r20582r20583
454454   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
455455   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
456456
457   PORT_START("ROW2")
457   PORT_START("Y2")
458458   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
459459   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
460460   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
r20582r20583
464464   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
465465   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"')
466466
467   PORT_START("ROW3")
467   PORT_START("Y3")
468468   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
469469   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK)
470470   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
r20582r20583
474474   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
475475   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
476476
477   PORT_START("ROW4")
477   PORT_START("Y4")
478478   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
479479   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
480480   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
r20582r20583
484484   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
485485   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
486486
487   PORT_START("ROW5")
487   PORT_START("Y5")
488488   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
489489   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
490490   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
r20582r20583
494494   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
495495   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
496496
497   PORT_START("ROW6")
497   PORT_START("Y6")
498498   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
499499   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
500500   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
r20582r20583
504504   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
505505   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
506506
507   PORT_START("ROW7")
507   PORT_START("Y7")
508508   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
509509   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
510510   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_CODE(KEYCODE_RALT)
r20582r20583
551551static INPUT_PORTS_START( ql_es )
552552   PORT_INCLUDE(ql)
553553
554   PORT_MODIFY("ROW1")
554   PORT_MODIFY("Y1")
555555   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("] \xc3\x9c") PORT_CHAR(']') PORT_CHAR(0xfc) PORT_CHAR(0xdc)
556556
557   PORT_MODIFY("ROW2")
557   PORT_MODIFY("Y2")
558558   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('`') PORT_CHAR('^')
559559   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('!')
560560   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[ \xc3\x87") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('[') PORT_CHAR(0xe7) PORT_CHAR(0xc7)
561561   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(':')
562562
563   PORT_MODIFY("ROW3")
563   PORT_MODIFY("Y3")
564564   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('\'') PORT_CHAR('"')
565565   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x91") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0xf1) PORT_CHAR(0xd1)
566566
567   PORT_MODIFY("ROW4")
567   PORT_MODIFY("Y4")
568568   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 \xc2\xa1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR(0xa1)
569569
570   PORT_MODIFY("ROW6")
570   PORT_MODIFY("Y6")
571571   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \xc2\xbf") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR(0xbf)
572572   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('/')
573573
574   PORT_MODIFY("ROW7")
574   PORT_MODIFY("Y7")
575575   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('<') PORT_CHAR('>')
576576   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?')
577577INPUT_PORTS_END
r20582r20583
584584static INPUT_PORTS_START( ql_de )
585585   PORT_INCLUDE(ql)
586586
587   PORT_MODIFY("ROW0")
587   PORT_MODIFY("Y0")
588588   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/')
589589
590   PORT_MODIFY("ROW1")
590   PORT_MODIFY("Y1")
591591   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('<') PORT_CHAR('>')
592592
593   PORT_MODIFY("ROW2")
593   PORT_MODIFY("Y2")
594594   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('+') PORT_CHAR('*')
595595   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
596596   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':')
597597   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('^')
598598   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x84") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0xe4) PORT_CHAR(0xc4)
599599
600   PORT_MODIFY("ROW3")
600   PORT_MODIFY("Y3")
601601   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x9c") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0xfc) PORT_CHAR(0xdc)
602602   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('#') PORT_CHAR('\'')
603603   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x96") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0xf6) PORT_CHAR(0xd6)
604604
605   PORT_MODIFY("ROW4")
605   PORT_MODIFY("Y4")
606606   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 \xc2\xa3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0xa7)
607607
608   PORT_MODIFY("ROW5")
608   PORT_MODIFY("Y5")
609609   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
610610   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x9f ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0xdf) PORT_CHAR('?')
611611   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
612612
613   PORT_MODIFY("ROW6")
613   PORT_MODIFY("Y6")
614614   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
615615   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
616616   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
617617   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=')
618618
619   PORT_MODIFY("ROW7")
619   PORT_MODIFY("Y7")
620620   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_')
621621   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';')
622622INPUT_PORTS_END
r20582r20583
629629static INPUT_PORTS_START( ql_it )
630630   PORT_INCLUDE(ql)
631631
632   PORT_MODIFY("ROW0")
632   PORT_MODIFY("Y0")
633633   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('(') PORT_CHAR('5')
634634   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('\'') PORT_CHAR('4')
635635   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 \xc3\xa8") PORT_CODE(KEYCODE_7) PORT_CHAR('?') PORT_CHAR('7')
636636
637   PORT_MODIFY("ROW1")
637   PORT_MODIFY("Y1")
638638   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('<') PORT_CHAR('>')
639639
640   PORT_MODIFY("ROW2")
640   PORT_MODIFY("Y2")
641641   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('$') PORT_CHAR('&')
642642   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
643643   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR(':') PORT_CHAR('/')
r20582r20583
645645   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?')
646646   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xb9 %") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0xf9) PORT_CHAR('%')
647647
648   PORT_MODIFY("ROW3")
648   PORT_MODIFY("Y3")
649649   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xac =") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0xec) PORT_CHAR('=')
650650   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('+')
651651   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
652652
653   PORT_MODIFY("ROW4")
653   PORT_MODIFY("Y4")
654654   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('"') PORT_CHAR('3')
655655   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('#') PORT_CHAR('1')
656656
657   PORT_MODIFY("ROW5")
657   PORT_MODIFY("Y5")
658658   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa7 9") PORT_CODE(KEYCODE_9) PORT_CHAR(0xe7) PORT_CHAR('9')
659659   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
660660   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(')') PORT_CHAR('\\')
661661
662   PORT_MODIFY("ROW6")
662   PORT_MODIFY("Y6")
663663   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('^') PORT_CHAR('8')
664664   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa9 2") PORT_CODE(KEYCODE_2) PORT_CHAR(0xe9) PORT_CHAR('2')
665665   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('_') PORT_CHAR('6')
666666   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa0 0") PORT_CODE(KEYCODE_0) PORT_CHAR(0xe0) PORT_CHAR('0')
667667
668   PORT_MODIFY("ROW7")
668   PORT_MODIFY("Y7")
669669   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xb2 !") PORT_CODE(KEYCODE_SLASH) PORT_CHAR(0xf2) PORT_CHAR('!')
670670   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('.')
671671INPUT_PORTS_END
trunk/src/mess/drivers/abc80x.c
r20582r20583
998998
999999void abc800_state::machine_reset()
10001000{
1001   m_sb = ioport("SB")->read();
1001   m_sb = m_io_sb->read();
10021002
10031003   m_fetch_charram = 0;
10041004   bankswitch();
r20582r20583
10451045
10461046void abc802_state::machine_reset()
10471047{
1048   UINT8 config = ioport("CONFIG")->read();
1049   m_sb = ioport("SB")->read();
1048   UINT8 config = m_config->read();
1049   m_sb = m_io_sb->read();
10501050
10511051   // memory banking
10521052   m_lrs = 1;
r20582r20583
11151115
11161116void abc806_state::machine_reset()
11171117{
1118   m_sb = ioport("SB")->read();
1118   m_sb = m_io_sb->read();
11191119
11201120   // setup memory banking
11211121   int bank;
trunk/src/mess/drivers/tmc1800.c
r20582r20583
151151
152152       bit     description
153153
154       0       X0
155       1       X1
156       2       X2
157       3       Y0
158       4       not connected
159       5       not connected
160       6       not connected
161       7       not connected
154       0       A
155       1       B
156       2       C
157       3       NY0
158       4       NY1
159       5       
160       6       
161       7       
162162
163163   */
164164
165   m_keylatch = data & 0x0f;
165   m_keylatch = data & 0x1f;
166166}
167167
168168void tmc2000_state::bankswitch()
169169{
170170   address_space &program = m_maincpu->space(AS_PROGRAM);
171171   UINT8 *ram = m_ram->pointer();
172   UINT8 *rom = memregion(CDP1802_TAG)->base();
172   UINT8 *rom = m_rom->base();
173173
174174   if (m_roc)
175175   {
r20582r20583
440440}
441441
442442static INPUT_PORTS_START( nano )
443   PORT_START("IN0")
443   PORT_START("NY0")
444444   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR('0')
445445   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('1')
446446   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('2')
r20582r20583
450450   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('6')
451451   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR('7')
452452
453   PORT_START("IN1")
453   PORT_START("NY1")
454454   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('8')
455455   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR('9')
456456   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
r20582r20583
473473
474474READ_LINE_MEMBER( tmc1800_state::clear_r )
475475{
476   return BIT(ioport("RUN")->read(), 0);
476   return BIT(m_run->read(), 0);
477477}
478478
479479READ_LINE_MEMBER( tmc1800_state::ef2_r )
480480{
481   return (m_cassette)->input() < 0;
481   return m_cassette->input() < 0;
482482}
483483
484484READ_LINE_MEMBER( tmc1800_state::ef3_r )
485485{
486   static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" };
487   UINT8 data = ~ioport(keynames[m_keylatch / 8])->read();
488
489   return BIT(data, m_keylatch % 8);
486   return CLEAR_LINE; // TODO
490487}
491488
492489WRITE_LINE_MEMBER( tmc1800_state::q_w )
r20582r20583
514511
515512READ_LINE_MEMBER( osc1000b_state::clear_r )
516513{
517   return BIT(ioport("RUN")->read(), 0);
514   return BIT(m_run->read(), 0);
518515}
519516
520517READ_LINE_MEMBER( osc1000b_state::ef2_r )
521518{
522   return (m_cassette)->input() < 0;
519   return m_cassette->input() < 0;
523520}
524521
525522READ_LINE_MEMBER( osc1000b_state::ef3_r )
526523{
527   static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" };
528   UINT8 data = ~ioport(keynames[m_keylatch / 8])->read();
529
530   return BIT(data, m_keylatch % 8);
524   return CLEAR_LINE; // TODO
531525}
532526
533527WRITE_LINE_MEMBER( osc1000b_state::q_w )
r20582r20583
555549
556550READ_LINE_MEMBER( tmc2000_state::clear_r )
557551{
558   return BIT(ioport("RUN")->read(), 0);
552   return BIT(m_run->read(), 0);
559553}
560554
561555READ_LINE_MEMBER( tmc2000_state::ef2_r )
r20582r20583
565559
566560READ_LINE_MEMBER( tmc2000_state::ef3_r )
567561{
568   static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" };
569   UINT8 data = ~ioport(keynames[m_keylatch / 8])->read();
562   ioport_port *ports[] = { m_in0, m_in1, m_in2, m_in3, m_in4, m_in5, m_in6, m_in7 };
563   UINT8 data = ~ports[m_keylatch / 8]->read();
570564
571565   return BIT(data, m_keylatch % 8);
572566}
r20582r20583
611605
612606READ_LINE_MEMBER( nano_state::clear_r )
613607{
614   int run = BIT(ioport("RUN")->read(), 0);
615   int monitor = BIT(ioport("MONITOR")->read(), 0);
608   int run = BIT(m_run->read(), 0);
609   int monitor = BIT(m_monitor->read(), 0);
616610
617   return run & monitor;
611   return run && monitor;
618612}
619613
620614READ_LINE_MEMBER( nano_state::ef2_r )
621615{
622   return (m_cassette)->input() < 0;
616   return m_cassette->input() < 0;
623617}
624618
625619READ_LINE_MEMBER( nano_state::ef3_r )
626620{
627   static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" };
628   UINT8 data = ~ioport(keynames[m_keylatch / 8])->read();
621   UINT8 data = 0xff;
629622
630   return BIT(data, m_keylatch % 8);
623   if (!BIT(m_keylatch, 3)) data &= m_ny0->read();
624   if (!BIT(m_keylatch, 4)) data &= m_ny1->read();
625
626   return !BIT(data, m_keylatch & 0x07);
631627}
632628
633629WRITE_LINE_MEMBER( nano_state::q_w )
r20582r20583
692688{
693689   UINT16 addr;
694690
695   m_colorram = auto_alloc_array(machine(), UINT8, TMC2000_COLORRAM_SIZE);
691   m_colorram.allocate(TMC2000_COLORRAM_SIZE);
696692
697693   // randomize color RAM contents
698694   for (addr = 0; addr < TMC2000_COLORRAM_SIZE; addr++)
r20582r20583
701697   }
702698
703699   // state saving
704   save_pointer(NAME(m_colorram), TMC2000_COLORRAM_SIZE);
705700   save_item(NAME(m_keylatch));
706701   save_item(NAME(m_rac));
707702   save_item(NAME(m_roc));
r20582r20583
746741
747742   /* enable ROM */
748743   address_space &program = m_maincpu->space(AS_PROGRAM);
749   UINT8 *rom = memregion(CDP1802_TAG)->base();
744   UINT8 *rom = m_rom->base();
750745   program.install_rom(0x0000, 0x01ff, 0, 0x7e00, rom);
751746}
752747
r20582r20583
763758
764759static QUICKLOAD_LOAD( tmc1800 )
765760{
766   UINT8 *ptr = image.device().machine().root_device().memregion(CDP1802_TAG)->base();
761   tmc1800_state *state = image.device().machine().driver_data<tmc1800_state>();
762   UINT8 *ptr = state->m_rom->base();
767763   int size = image.length();
768764
769   if (size > image.device().machine().device<ram_device>(RAM_TAG)->size())
765   if (size > state->m_ram->size())
770766   {
771767      return IMAGE_INIT_FAIL;
772768   }
trunk/src/mess/drivers/wangpc.c
r20582r20583
851851
852852   */
853853
854   return ioport("SW")->read() << 4;
854   return m_sw->read() << 4;
855855}
856856
857857WRITE8_MEMBER( wangpc_state::ppi_pc_w )
trunk/src/mess/drivers/m5.c
r20582r20583
6666   UINT8 data = 0;
6767
6868   // cassette input
69   data |= (m_cassette)->input() >= 0 ? 1 : 0;
69   data |= m_cassette->input() >= 0 ? 1 : 0;
7070
7171   // centronics busy
7272   data |= m_centronics->busy_r() << 1;
7373
7474   // RESET key
75   data |= ioport("RESET")->read();
75   data |= m_reset->read();
7676
7777   return data;
7878}
trunk/src/mess/drivers/prof80.c
r20582r20583
4949{
5050   address_space &program = m_maincpu->space(AS_PROGRAM);
5151   UINT8 *ram = m_ram->pointer();
52   UINT8 *rom = memregion(Z80_TAG)->base();
52   UINT8 *rom = m_rom->base();
5353   int bank;
5454
5555   for (bank = 0; bank < 16; bank++)
r20582r20583
100100
101101void prof80_state::floppy_motor_off()
102102{
103   if(m_floppy0)
104      m_floppy0->mon_w(true);
105   if(m_floppy1)
106      m_floppy1->mon_w(true);
103   if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(1);
104   if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(1);
107105
108106   m_motor = 0;
109107}
r20582r20583
156154      else
157155      {
158156         // turn on floppy motor
159         if(m_floppy0)
160            m_floppy0->mon_w(false);
161         if(m_floppy1)
162            m_floppy1->mon_w(false);
163
157         if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0);
158         if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0);
159         
164160         m_motor = 1;
165161
166162         // reset floppy motor off NE555 timer
r20582r20583
271267   data |= 0x10;
272268
273269   // floppy index
274   if(m_floppy0)
275      data |= m_floppy0->idx_r() << 5;
270   data |= (m_floppy0->get_device() ? m_floppy0->get_device()->idx_r() : m_floppy1->get_device() ? m_floppy1->get_device()->idx_r() : 1) << 5;
276271
277   if(m_floppy1)
278      data |= m_floppy1->idx_r() << 5;
279
280272   return data;
281273}
282274
r20582r20583
309301   data |= !m_motor;
310302
311303   // JS4
312   switch (ioport("J4")->read())
304   switch (m_j4->read())
313305   {
314306   case 0: js4 = 0; break;
315307   case 1: js4 = 1; break;
r20582r20583
321313   data |= js4 << 4;
322314
323315   // JS5
324   switch (ioport("J5")->read())
316   switch (m_j5->read())
325317   {
326318   case 0: js5 = 0; break;
327319   case 1: js5 = 1; break;
trunk/src/mess/drivers/pc8001.c
r20582r20583
160160static ADDRESS_MAP_START( pc8001_io, AS_IO, 8, pc8001_state )
161161   ADDRESS_MAP_GLOBAL_MASK(0xff)
162162   ADDRESS_MAP_UNMAP_HIGH
163   AM_RANGE(0x00, 0x00) AM_READ_PORT("KEY0")
164   AM_RANGE(0x01, 0x01) AM_READ_PORT("KEY1")
165   AM_RANGE(0x02, 0x02) AM_READ_PORT("KEY2")
166   AM_RANGE(0x03, 0x03) AM_READ_PORT("KEY3")
167   AM_RANGE(0x04, 0x04) AM_READ_PORT("KEY4")
168   AM_RANGE(0x05, 0x05) AM_READ_PORT("KEY5")
169   AM_RANGE(0x06, 0x06) AM_READ_PORT("KEY6")
170   AM_RANGE(0x07, 0x07) AM_READ_PORT("KEY7")
171   AM_RANGE(0x08, 0x08) AM_READ_PORT("KEY8")
172   AM_RANGE(0x09, 0x09) AM_READ_PORT("KEY9")
163   AM_RANGE(0x00, 0x00) AM_READ_PORT("Y0")
164   AM_RANGE(0x01, 0x01) AM_READ_PORT("Y1")
165   AM_RANGE(0x02, 0x02) AM_READ_PORT("Y2")
166   AM_RANGE(0x03, 0x03) AM_READ_PORT("Y3")
167   AM_RANGE(0x04, 0x04) AM_READ_PORT("Y4")
168   AM_RANGE(0x05, 0x05) AM_READ_PORT("Y5")
169   AM_RANGE(0x06, 0x06) AM_READ_PORT("Y6")
170   AM_RANGE(0x07, 0x07) AM_READ_PORT("Y7")
171   AM_RANGE(0x08, 0x08) AM_READ_PORT("Y8")
172   AM_RANGE(0x09, 0x09) AM_READ_PORT("Y9")
173173   AM_RANGE(0x10, 0x10) AM_MIRROR(0x0f) AM_WRITE(port10_w)
174174   AM_RANGE(0x20, 0x20) AM_MIRROR(0x0e) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w)
175175   AM_RANGE(0x21, 0x21) AM_MIRROR(0x0e) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w)
r20582r20583
235235/* Input Ports */
236236
237237static INPUT_PORTS_START( pc8001 )
238   PORT_START("KEY0")
238   PORT_START("Y0")
239239   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0_PAD)      PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
240240   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD)      PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
241241   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD)      PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
r20582r20583
245245   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6_PAD)      PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
246246   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7_PAD)      PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
247247
248   PORT_START("KEY1")
248   PORT_START("Y1")
249249   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8_PAD)      PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
250250   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9_PAD)      PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
251251   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK)   PORT_CHAR(UCHAR_MAMEKEY(ASTERISK))
r20582r20583
255255   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL_PAD)    PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
256256   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13)
257257
258   PORT_START("KEY2")
258   PORT_START("Y2")
259259   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE)  PORT_CHAR('@')
260260   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A)          PORT_CHAR('a') PORT_CHAR('A')
261261   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B)          PORT_CHAR('b') PORT_CHAR('B')
r20582r20583
265265   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F)          PORT_CHAR('f') PORT_CHAR('F')
266266   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G)          PORT_CHAR('g') PORT_CHAR('G')
267267
268   PORT_START("KEY3")
268   PORT_START("Y3")
269269   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H)          PORT_CHAR('h') PORT_CHAR('H')
270270   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I)          PORT_CHAR('i') PORT_CHAR('I')
271271   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J)          PORT_CHAR('j') PORT_CHAR('J')
r20582r20583
275275   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N)          PORT_CHAR('n') PORT_CHAR('N')
276276   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O)          PORT_CHAR('o') PORT_CHAR('O')
277277
278   PORT_START("KEY4")
278   PORT_START("Y4")
279279   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P)          PORT_CHAR('p') PORT_CHAR('P')
280280   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q)          PORT_CHAR('q') PORT_CHAR('Q')
281281   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R)          PORT_CHAR('r') PORT_CHAR('R')
r20582r20583
285285   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V)          PORT_CHAR('v') PORT_CHAR('V')
286286   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W)          PORT_CHAR('w') PORT_CHAR('W')
287287
288   PORT_START("KEY5")
288   PORT_START("Y5")
289289   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X)          PORT_CHAR('x') PORT_CHAR('X')
290290   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y)          PORT_CHAR('y') PORT_CHAR('Y')
291291   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z)          PORT_CHAR('z') PORT_CHAR('Z')
r20582r20583
295295   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS)     PORT_CHAR('^')
296296   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS)      PORT_CHAR('-') PORT_CHAR('=')
297297
298   PORT_START("KEY6")
298   PORT_START("Y6")
299299   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0)          PORT_CHAR('0')
300300   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1)          PORT_CHAR('1') PORT_CHAR('!')
301301   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2)          PORT_CHAR('2') PORT_CHAR('"')
r20582r20583
305305   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6)          PORT_CHAR('6') PORT_CHAR('&')
306306   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7)          PORT_CHAR('7') PORT_CHAR('\'')
307307
308   PORT_START("KEY7")
308   PORT_START("Y7")
309309   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8)          PORT_CHAR('8') PORT_CHAR('(')
310310   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9)          PORT_CHAR('9') PORT_CHAR(')')
311311   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE)      PORT_CHAR(':') PORT_CHAR('*')
r20582r20583
315315   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH)      PORT_CHAR('/') PORT_CHAR('?')
316316   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("  _") PORT_CODE(KEYCODE_DEL)           PORT_CHAR(0) PORT_CHAR('_')
317317
318   PORT_START("KEY8")
318   PORT_START("Y8")
319319   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Clr Home") PORT_CODE(KEYCODE_HOME)     PORT_CHAR(UCHAR_MAMEKEY(HOME))
320320   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP)  PORT_CHAR(UCHAR_MAMEKEY(UP))
321321   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT)    PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
r20582r20583
325325   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
326326   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL)                       PORT_CHAR(UCHAR_SHIFT_2)
327327
328   PORT_START("KEY9")
328   PORT_START("Y9")
329329   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Stop") PORT_CODE(KEYCODE_ESC)          PORT_CHAR(UCHAR_MAMEKEY(ESC))
330330   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1)                             PORT_CHAR(UCHAR_MAMEKEY(F1))
331331   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2)                             PORT_CHAR(UCHAR_MAMEKEY(F2))
r20582r20583
338338   PORT_START("DSW1")
339339INPUT_PORTS_END
340340
341/* Video */
342
343void pc8001_state::video_start()
344{
345   // find memory regions
346   m_char_rom = memregion("chargen")->base();
347}
348
349341/* uPD3301 Interface */
350342
351343static const rgb_t PALETTE[] =
r20582r20583
364356{
365357   pc8001_state *state = device->machine().driver_data<pc8001_state>();
366358
367   UINT8 data = state->m_char_rom[(cc << 3) | lc];
359   UINT8 data = state->m_char_rom->base()[(cc << 3) | lc];
368360   int i;
369361
370362   if (lc >= 8) return;
r20582r20583
503495   /* setup memory banking */
504496   UINT8 *ram = m_ram->pointer();
505497
506   membank("bank1")->configure_entry(1, memregion("n80")->base());
498   membank("bank1")->configure_entry(1, m_rom->base());
507499   program.install_read_bank(0x0000, 0x5fff, "bank1");
508500   program.unmap_write(0x0000, 0x5fff);
509501
r20582r20583
624616/* ROMs */
625617
626618ROM_START( pc8001 )
627   ROM_REGION( 0x6000, "n80", 0 )
619   ROM_REGION( 0x6000, Z80_TAG, 0 )
628620   ROM_SYSTEM_BIOS( 0, "v101", "N-BASIC v1.01" )
629621   ROMX_LOAD( "n80v101.rom", 0x00000, 0x6000, CRC(a2cc9f22) SHA1(6d2d838de7fea20ddf6601660d0525d5b17bf8a3), ROM_BIOS(1) )
630622   ROM_SYSTEM_BIOS( 1, "v102", "N-BASIC v1.02" )
r20582r20583
632624   ROM_SYSTEM_BIOS( 2, "v110", "N-BASIC v1.10" )
633625   ROMX_LOAD( "n80v110.rom", 0x00000, 0x6000, CRC(1e02d93f) SHA1(4603cdb7a3833e7feb257b29d8052c872369e713), ROM_BIOS(3) )
634626
635   ROM_REGION( 0x800, "chargen", 0)
627   ROM_REGION( 0x800, UPD3301_TAG, 0)
636628   ROM_LOAD( "font.rom", 0x000, 0x800, CRC(56653188) SHA1(84b90f69671d4b72e8f219e1fe7cd667e976cf7f) )
637629ROM_END
638630
639631ROM_START( pc8001mk2 )
640   ROM_REGION( 0x8000, "n80", 0 )
632   ROM_REGION( 0x8000, Z80_TAG, 0 )
641633   ROM_LOAD( "n80_2.rom", 0x00000, 0x8000, CRC(03cce7b6) SHA1(c12d34e42021110930fed45a8af98db52136f1fb) )
642634
643   ROM_REGION( 0x800, "chargen", 0)
635   ROM_REGION( 0x800, UPD3301_TAG, 0)
644636   ROM_LOAD( "font.rom", 0x0000, 0x0800, CRC(56653188) SHA1(84b90f69671d4b72e8f219e1fe7cd667e976cf7f) )
645637
646638   ROM_REGION( 0x20000, "kanji", 0)
trunk/src/mess/drivers/poly880.c
r20582r20583
187187
188188   */
189189
190   UINT8 data = 0xf0 | (((m_cassette)->input() < +0.0) << 1);
190   UINT8 data = 0xf0 | ((m_cassette->input() < +0.0) << 1);
191191   int i;
192192
193193   for (i = 0; i < 8; i++)
194194   {
195195      if (BIT(m_digit, i))
196196      {
197         if (!BIT(ioport("KI1")->read(), i)) data &= ~0x10;
198         if (!BIT(ioport("KI2")->read(), i)) data &= ~0x20;
199         if (!BIT(ioport("KI3")->read(), i)) data &= ~0x80;
197         if (!BIT(m_ki1->read(), i)) data &= ~0x10;
198         if (!BIT(m_ki2->read(), i)) data &= ~0x20;
199         if (!BIT(m_ki3->read(), i)) data &= ~0x80;
200200      }
201201   }
202202
trunk/src/mess/drivers/lc80.c
r20582r20583
8080}
8181
8282static INPUT_PORTS_START( lc80 )
83   PORT_START("ROW0")
83   PORT_START("Y0")
8484   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
8585   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3')
8686   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
r20582r20583
8888   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
8989   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_DOWN) PORT_CHAR('V')
9090
91   PORT_START("ROW1")
91   PORT_START("Y1")
9292   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LD") PORT_CODE(KEYCODE_L)
9393   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
9494   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("+") PORT_CODE(KEYCODE_UP) PORT_CHAR('^')
r20582r20583
9696   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
9797   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
9898
99   PORT_START("ROW2")
99   PORT_START("Y2")
100100   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ST") PORT_CODE(KEYCODE_S)
101101   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
102102   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5')
r20582r20583
104104   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
105105   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DAT") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=')
106106
107   PORT_START("ROW3")
107   PORT_START("Y3")
108108   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("EX") PORT_CODE(KEYCODE_X) PORT_CHAR('X')
109109   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
110110   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4')
r20582r20583
190190
191191   */
192192
193   return ((m_cassette)->input() < +0.0);
193   return (m_cassette->input() < +0.0);
194194}
195195
196196WRITE8_MEMBER( lc80_state::pio1_pb_w )
r20582r20583
261261   {
262262      if (!BIT(m_digit, i))
263263      {
264         if (!BIT(ioport("ROW0")->read(), i)) data &= ~0x10;
265         if (!BIT(ioport("ROW1")->read(), i)) data &= ~0x20;
266         if (!BIT(ioport("ROW2")->read(), i)) data &= ~0x40;
267         if (!BIT(ioport("ROW3")->read(), i)) data &= ~0x80;
264         if (!BIT(m_y0->read(), i)) data &= ~0x10;
265         if (!BIT(m_y1->read(), i)) data &= ~0x20;
266         if (!BIT(m_y2->read(), i)) data &= ~0x40;
267         if (!BIT(m_y3->read(), i)) data &= ~0x80;
268268      }
269269   }
270270
r20582r20583
299299   address_space &program = m_maincpu->space(AS_PROGRAM);
300300
301301   /* setup memory banking */
302   membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base()); // TODO
303   membank("bank1")->configure_entry(1, memregion(Z80_TAG)->base());
302   membank("bank1")->configure_entry(0, m_rom->base()); // TODO
303   membank("bank1")->configure_entry(1, m_rom->base());
304304   membank("bank1")->set_entry(1);
305305
306   membank("bank2")->configure_entry(0, memregion(Z80_TAG)->base() + 0x800); // TODO
307   membank("bank2")->configure_entry(1, memregion(Z80_TAG)->base() + 0x800);
306   membank("bank2")->configure_entry(0, m_rom->base() + 0x800); // TODO
307   membank("bank2")->configure_entry(1, m_rom->base() + 0x800);
308308   membank("bank2")->set_entry(1);
309309
310   membank("bank3")->configure_entry(0, memregion(Z80_TAG)->base() + 0x1000); // TODO
311   membank("bank3")->configure_entry(1, memregion(Z80_TAG)->base() + 0x1000);
310   membank("bank3")->configure_entry(0, m_rom->base() + 0x1000); // TODO
311   membank("bank3")->configure_entry(1, m_rom->base() + 0x1000);
312312   membank("bank3")->set_entry(1);
313313
314   membank("bank4")->configure_entry(0, memregion(Z80_TAG)->base() + 0x2000);
314   membank("bank4")->configure_entry(0, m_rom->base() + 0x2000);
315315   membank("bank4")->set_entry(0);
316316
317317   program.install_readwrite_bank(0x0000, 0x07ff, "bank1");
trunk/src/mess/drivers/tek405x.c
r20582r20583
2323*/
2424
2525
26#include "emu.h"
27#include "cpu/m6800/m6800.h"
28#include "machine/ram.h"
29#include "machine/6821pia.h"
30#include "machine/6850acia.h"
31#include "machine/ieee488.h"
32#include "sound/speaker.h"
33#include "video/vector.h"
3426#include "includes/tek405x.h"
3527
3628
r20582r20583
123115   switch (lbs)
124116   {
125117   case LBS_RBC:
126      program.install_rom(0x8800, 0xa7ff, memregion(MC6800_TAG)->base() + 0x800);
118      program.install_rom(0x8800, 0xa7ff, m_rom->base() + 0x800);
127119      break;
128120
129121   case LBS_BSOFL:
130      program.install_rom(0x8800, 0xa7ff, memregion("020_0147_00")->base());
122      program.install_rom(0x8800, 0xa7ff, m_bsofl_rom->base());
131123      break;
132124
133125   case LBS_BSCOM:
134      program.install_rom(0x8800, 0xa7ff, memregion("672_0799_08")->base());
126      program.install_rom(0x8800, 0xa7ff, m_bscom_rom->base());
135127      break;
136128
137129   default:
r20582r20583
639631   */
640632
641633   UINT8 data = 0;
642   UINT8 special = ioport("SPECIAL")->read();
634   UINT8 special = m_special->read();
643635
644636   // keyboard column
645637   data = m_kc;
r20582r20583
668660   */
669661
670662   UINT8 data = 0;
671   UINT8 special = ioport("SPECIAL")->read();
663   UINT8 special = m_special->read();
672664
673665   // shift
674666   data |= (BIT(special, 0) & BIT(special, 1));
r20582r20583
12421234   MCFG_RAM_ADD(RAM_TAG)
12431235   MCFG_RAM_DEFAULT_SIZE("8K")
12441236   MCFG_RAM_EXTRA_OPTIONS("16K,24K,32K")
1237
1238   // cartridge
1239   MCFG_CARTSLOT_ADD("cart1")
1240   MCFG_CARTSLOT_EXTENSION_LIST("bin")
1241   MCFG_CARTSLOT_INTERFACE("tek4050_cart")
1242
1243   MCFG_CARTSLOT_ADD("cart2")
1244   MCFG_CARTSLOT_EXTENSION_LIST("bin")
1245   MCFG_CARTSLOT_INTERFACE("tek4050_cart")
12451246MACHINE_CONFIG_END
12461247
12471248
r20582r20583
12741275   MCFG_RAM_ADD(RAM_TAG)
12751276   MCFG_RAM_DEFAULT_SIZE("32K")
12761277   MCFG_RAM_EXTRA_OPTIONS("64K")
1278
1279   // cartridge
1280   MCFG_CARTSLOT_ADD("cart1")
1281   MCFG_CARTSLOT_EXTENSION_LIST("bin")
1282   MCFG_CARTSLOT_INTERFACE("tek4050_cart")
1283
1284   MCFG_CARTSLOT_ADD("cart2")
1285   MCFG_CARTSLOT_EXTENSION_LIST("bin")
1286   MCFG_CARTSLOT_INTERFACE("tek4050_cart")
1287
1288   // software lists
1289   MCFG_SOFTWARE_LIST_ADD("cart_list", "tek4052_cart")
12771290MACHINE_CONFIG_END
12781291
12791292
r20582r20583
13281341   ROM_LOAD( "156-0714-00.u121", 0x1000, 0x0800, NO_DUMP )
13291342   ROM_LOAD( "156-0714-01.u121", 0x1000, 0x0800, NO_DUMP )
13301343   ROM_LOAD( "156-0715-01.u131", 0x1800, 0x0800, NO_DUMP )
1331
1344/*
13321345   ROM_REGION( 0x2000, "4051r01", 0 ) // 4051R01 Matrix Functions
13331346   ROM_LOAD( "4051r01", 0x0000, 0x1000, NO_DUMP )
13341347
r20582r20583
13381351
13391352   ROM_REGION( 0x2000, "4051r06", 0 ) // 4051R06 Editor
13401353   ROM_LOAD( "4051r06", 0x0000, 0x1000, NO_DUMP )
1354*/
13411355ROM_END
13421356
13431357
r20582r20583
13671381   ROM_LOAD16_BYTE( "160-1702-00.u845", 0x10000, 0x2000, CRC(013344b1) SHA1(4a79654427e15d0fcedd9519914f6448938ecffd) )
13681382   ROM_LOAD16_BYTE( "160-1685-00.u863", 0x10001, 0x2000, CRC(53ddc8f9) SHA1(431d6f329dedebb54232c623a924d5ecddc5e44e) )
13691383
1370   ROM_REGION( 0x2000, "4052r06", 0 ) // 4052R06 Editor
1371   ROM_LOAD( "160-1415 v2.0.u11", 0x0000, 0x1000, CRC(04cbc80d) SHA1(7bfb80fa099a794b18a7a5d7f8c2de4b36e245ec) )
1372   ROM_LOAD( "160-1414 v2.0.u1",  0x1000, 0x1000, CRC(675da652) SHA1(36a9677853e50a40195519dfdb6a3b3985438bc4) )
1384   ROM_REGION( 0x2000, "020_0147_00", 0 ) // Firmware Backpack (020-0147-00)
1385   ROM_LOAD( "156-0747-xx.u101", 0x0000, 0x0800, CRC(9e1facc1) SHA1(7e7a118c3e8c49630f630ee02c3de843dd95d7e1) ) // -00 or -01 ?
1386   ROM_LOAD( "156-0748-xx.u201", 0x0800, 0x0800, CRC(be42bfbf) SHA1(23575b411bd9dcb7d7116628820096e3064ff93b) ) // -00 or -01 ?
13731387
1374   ROM_REGION( 0x2000, "4052r07", 0 ) // 4052R07 Signal Processing No. 1
1375   ROM_LOAD( "160-1416-00 v2.0.u1", 0x0000, 0x1000, CRC(537acdb2) SHA1(275e016eda327173095ae60ca79e72075c606954) )
1376
1377   ROM_REGION( 0x2000, "4052r08", 0 ) // 4052R08 Signal Processing No. 2 (FFT)
1378   ROM_LOAD( "160-1418 v2.0.u11", 0x1000, 0x1000, CRC(f1c19044) SHA1(b1b86009980900f31eccf158dcc7036c7810b8f5) )
1379   ROM_LOAD( "160-1417 v2.0.u1",  0x0000, 0x1000, CRC(bee2e90f) SHA1(9f1a26aa98583678047fc532f5fdb3c8a468e617) )
1380
1381   ROM_REGION( 0x3000, "020_0478_01", 0 ) // 4052/4054 File Manager
1382   ROM_LOAD( "160-1703-00 v3.0.u13", 0x0000, 0x1000, CRC(991c9f5f) SHA1(cce038f90edec6e551049c4411da8eeca6faeb4e) )
1383   ROM_LOAD( "160-1420-00 v3.0.u11", 0x1000, 0x1000, CRC(6545e073) SHA1(63a8d774a4b6f3640a833fd8be592a1baf124f7d) )
1384   ROM_LOAD( "160-1419-00 v3.0.u1",  0x2000, 0x1000, CRC(66d9d2d5) SHA1(e603ef1cacd6a20b975cf532f2e1978dcbee9789) )
1385
1386   ROM_REGION( 0x800, "720_dac", 0 ) // Transera 4052/4054 D/A Converter
1387   ROM_LOAD( "transera.da", 0x0000, 0x0800, CRC(1c16e4da) SHA1(6d6ea0c5c68bab8e6a885b3cb05aa591f7754c56) )
1388   ROM_REGION( 0x2000, "021_0188_00", 0 ) // Communications Backpack (021-0188-00)
1389   ROM_LOAD( "156-0712-00.u101", 0x0000, 0x0800, NO_DUMP )
1390   ROM_LOAD( "156-0712-01.u101", 0x0000, 0x0800, NO_DUMP )
1391   ROM_LOAD( "156-0713-00.u111", 0x0800, 0x0800, NO_DUMP )
1392   ROM_LOAD( "156-0713-01.u111", 0x0800, 0x0800, NO_DUMP )
1393   ROM_LOAD( "156-0714-00.u121", 0x1000, 0x0800, NO_DUMP )
1394   ROM_LOAD( "156-0714-01.u121", 0x1000, 0x0800, NO_DUMP )
1395   ROM_LOAD( "156-0715-01.u131", 0x1800, 0x0800, NO_DUMP )
13881396ROM_END
13891397
13901398
trunk/src/mess/drivers/super6.c
r20582r20583
2424{
2525   address_space &program = m_maincpu->space(AS_PROGRAM);
2626   UINT8 *ram = m_ram->pointer();
27   UINT8 *rom = memregion(Z80_TAG)->base();
27   UINT8 *rom = m_rom->base();
2828
2929   // power on jump
3030   if (!BIT(m_bank0, 6)) { program.install_rom(0x0000, 0x07ff, 0, 0xf800, rom); return; }
trunk/src/mess/drivers/xerox820.c
r20582r20583
4545   if (bank)
4646   {
4747      /* ROM */
48      program.install_rom(0x0000, 0x0fff, memregion("monitor")->base());
48      program.install_rom(0x0000, 0x0fff, m_rom->base());
4949      program.unmap_readwrite(0x1000, 0x1fff);
5050      program.install_ram(0x3000, 0x3fff, m_video_ram);
5151   }
r20582r20583
6464   if (bank)
6565   {
6666      /* ROM */
67      program.install_rom(0x0000, 0x17ff, memregion("monitor")->base());
67      program.install_rom(0x0000, 0x17ff, m_rom->base());
6868      program.unmap_readwrite(0x1800, 0x2fff);
6969      program.install_ram(0x3000, 0x3fff, m_video_ram);
7070      program.unmap_readwrite(0x4000, 0xbfff);
r20582r20583
522522
523523/* Video */
524524
525void xerox820_state::video_start()
526{
527   /* find memory regions */
528   m_char_rom = memregion("chargen")->base();
529}
530
531
532525UINT32 xerox820_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
533526{
534527   UINT8 y,ra,chr,gfx;
r20582r20583
555548                  chr |= 0x80;
556549
557550               /* get pattern of pixels for that character scanline */
558               gfx = m_char_rom[(m_ncset2 << 10) | (chr<<3) | ra ];
551               gfx = m_char_rom->base()[(m_ncset2 << 10) | (chr<<3) | ra ];
559552            }
560553            else
561554               gfx = 0xff;
r20582r20583
787780/* ROMs */
788781
789782ROM_START( bigboard )
790   ROM_REGION( 0x1000, "monitor", 0 )
783   ROM_REGION( 0x1000, Z80_TAG, 0 )
791784   ROM_LOAD( "bigboard.u67", 0x0000, 0x0800, CRC(5a85a228) SHA1(d51a2cbd0aae80315bda9530275aabfe8305364e))
792785
793786   ROM_REGION( 0x800, "chargen", 0 )
r20582r20583
797790#define rom_mk82 rom_bigboard
798791
799792ROM_START( x820 )
800   ROM_REGION( 0x1000, "monitor", 0 )
793   ROM_REGION( 0x1000, Z80_TAG, 0 )
801794   ROM_DEFAULT_BIOS( "v20" )
802795   ROM_SYSTEM_BIOS( 0, "v10", "Xerox Monitor v1.0" )
803796   ROMX_LOAD( "x820v10.u64", 0x0000, 0x0800, NO_DUMP, ROM_BIOS(1) )
r20582r20583
820813ROM_END
821814
822815ROM_START( x820ii )
823   ROM_REGION( 0x1800, "monitor", 0 )
816   ROM_REGION( 0x1800, Z80_TAG, 0 )
824817   ROM_DEFAULT_BIOS( "v404" )
825818   ROM_SYSTEM_BIOS( 0, "v404", "Balcones Operating System v4.04" )
826819   ROMX_LOAD( "537p3652.u33", 0x0000, 0x0800, CRC(7807cfbb) SHA1(bd3cc5cc5c59c84a50747aae5c17eb4617b0dbc3), ROM_BIOS(1) )
r20582r20583
836829ROM_END
837830
838831ROM_START( x168 )
839   ROM_REGION( 0x1800, "monitor", 0 )
832   ROM_REGION( 0x1800, Z80_TAG, 0 )
840833   ROM_DEFAULT_BIOS( "v404" )
841834   ROM_SYSTEM_BIOS( 0, "v404", "Balcones Operating System v4.04" )
842835   ROMX_LOAD( "537p3652.u33", 0x0000, 0x0800, CRC(7807cfbb) SHA1(bd3cc5cc5c59c84a50747aae5c17eb4617b0dbc3), ROM_BIOS(1) )
r20582r20583
855848ROM_END
856849
857850ROM_START( mk83 )
858   ROM_REGION( 0x1000, "monitor", 0 )
851   ROM_REGION( 0x1000, Z80_TAG, 0 )
859852   ROM_LOAD( "2732mk83.bin", 0x0000, 0x1000, CRC(a845c7e1) SHA1(3ccf629c5cd384953794ac4a1d2b45678bd40e92))
860853   ROM_REGION( 0x800, "chargen", 0 )
861854   ROM_LOAD( "2716mk83.bin", 0x0000, 0x0800, CRC(10bf0d81) SHA1(7ec73670a4d9d6421a5d6a4c4edc8b7c87923f6c))
trunk/src/mess/drivers/vixen.c
r20582r20583
291291//-------------------------------------------------
292292
293293INPUT_PORTS_START( vixen )
294   PORT_START("ROW0")
294   PORT_START("Y0")
295295   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
296296   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
297297   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
301301   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
302302   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
303303
304   PORT_START("ROW1")
304   PORT_START("Y1")
305305   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
306306   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
307307   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
311311   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
312312   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
313313
314   PORT_START("ROW2")
314   PORT_START("Y2")
315315   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
316316   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
317317   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
321321   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
322322   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
323323
324   PORT_START("ROW3")
324   PORT_START("Y3")
325325   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
326326   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
327327   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
331331   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
332332   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
333333
334   PORT_START("ROW4")
334   PORT_START("Y4")
335335   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
336336   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
337337   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
341341   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
342342   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
343343
344   PORT_START("ROW5")
344   PORT_START("Y5")
345345   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
346346   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
347347   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
351351   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
352352   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
353353
354   PORT_START("ROW6")
354   PORT_START("Y6")
355355   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
356356   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
357357   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
361361   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD )
362362   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD )
363363
364   PORT_START("ROW7")
364   PORT_START("Y7")
365365   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
366366   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
367367   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
398398
399399void vixen_state::video_start()
400400{
401   // find memory regions
402   m_sync_rom = memregion("video")->base();
403   m_char_rom = memregion("chargen")->base();
404
405401   // register for state saving
406402   save_item(NAME(m_alt));
407403   save_item(NAME(m_256));
408404   save_item(NAME(m_vsync));
409   save_pointer(NAME(m_video_ram.target()), 0x1000);
410405}
411406
412407
r20582r20583
423418         for (int chadr = 0; chadr < 128; chadr++)
424419         {
425420            UINT16 sync_addr = (txadr << 7) | chadr;
426            UINT8 sync_data = m_sync_rom[sync_addr];
421            UINT8 sync_data = m_sync_rom->base()[sync_addr];
427422            int blank = BIT(sync_data, 4);
428423            /*
429424            int clrchadr = BIT(sync_data, 7);
r20582r20583
453448               reverse = BIT(video_data, 7);
454449            }
455450
456            UINT8 char_data = m_char_rom[char_addr];
451            UINT8 char_data = m_char_rom->base()[char_addr];
457452
458453            for (int x = 0; x < 8; x++)
459454            {
r20582r20583
498493{
499494   UINT8 data = 0xff;
500495
501   if (!BIT(m_col, 0)) data &= ioport("ROW0")->read();
502   if (!BIT(m_col, 1)) data &= ioport("ROW1")->read();
503   if (!BIT(m_col, 2)) data &= ioport("ROW2")->read();
504   if (!BIT(m_col, 3)) data &= ioport("ROW3")->read();
505   if (!BIT(m_col, 4)) data &= ioport("ROW4")->read();
506   if (!BIT(m_col, 5)) data &= ioport("ROW5")->read();
507   if (!BIT(m_col, 6)) data &= ioport("ROW6")->read();
508   if (!BIT(m_col, 7)) data &= ioport("ROW7")->read();
496   if (!BIT(m_col, 0)) data &= m_y0->read();
497   if (!BIT(m_col, 1)) data &= m_y1->read();
498   if (!BIT(m_col, 2)) data &= m_y2->read();
499   if (!BIT(m_col, 3)) data &= m_y3->read();
500   if (!BIT(m_col, 4)) data &= m_y4->read();
501   if (!BIT(m_col, 5)) data &= m_y5->read();
502   if (!BIT(m_col, 6)) data &= m_y6->read();
503   if (!BIT(m_col, 7)) data &= m_y7->read();
509504
510505   return data;
511506}
r20582r20583
755750   UINT8 *ram = m_ram->pointer();
756751
757752   membank("bank1")->configure_entry(0, ram);
758   membank("bank1")->configure_entry(1, memregion(Z8400A_TAG)->base());
753   membank("bank1")->configure_entry(1, m_rom->base());
759754
760755   membank("bank2")->configure_entry(0, ram);
761756   membank("bank2")->configure_entry(1, m_video_ram);
762757
763758   membank("bank3")->configure_entry(0, m_video_ram);
764   membank("bank3")->configure_entry(1, memregion(Z8400A_TAG)->base());
759   membank("bank3")->configure_entry(1, m_rom->base());
765760
766761   membank("bank4")->configure_entry(0, m_video_ram);
767762
r20582r20583
894889         m_reset = 0;
895890      }
896891
897      direct.explicit_configure(0xf000, 0xffff, 0xfff, machine().root_device().memregion(Z8400A_TAG)->base());
892      direct.explicit_configure(0xf000, 0xffff, 0xfff, m_rom->base());
898893
899894      return ~0;
900895   }
r20582r20583
904899
905900DRIVER_INIT_MEMBER(vixen_state,vixen)
906901{
907   address_space &program = machine().device<cpu_device>(Z8400A_TAG)->space(AS_PROGRAM);
908   program.set_direct_update_handler(direct_update_delegate(FUNC(vixen_state::vixen_direct_update_handler), this));
902   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(vixen_state::vixen_direct_update_handler), this));
909903}
910904
911905
trunk/src/mess/drivers/elf.c
r20582r20583
1616#include "elf2.lh"
1717
1818#define RUN \
19   BIT(ioport("SPECIAL")->read(), 0)
19   BIT(m_special->read(), 0)
2020
2121#define LOAD \
22   BIT(ioport("SPECIAL")->read(), 1)
22   BIT(m_special->read(), 1)
2323
2424#define MEMORY_PROTECT \
25   BIT(ioport("SPECIAL")->read(), 2)
25   BIT(m_special->read(), 2)
2626
2727#define INPUT \
28   BIT(ioport("SPECIAL")->read(), 3)
28   BIT(m_special->read(), 3)
2929
3030/* Read/Write Handlers */
3131
trunk/src/mess/drivers/pc8401a.c
r20582r20583
3737{
3838   int row, strobe = 0;
3939
40   static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" };
40   UINT8 keydata[10] = { m_y0->read(), m_y1->read(), m_y2->read(), m_y3->read(), m_y4->read(), m_y5->read(), m_y6->read(), m_y7->read(), m_y8->read(), m_y9->read() };
4141
4242   /* scan keyboard */
4343   for (row = 0; row < 10; row++)
4444   {
45      UINT8 data = ioport(keynames[row])->read();
45      UINT8 data = keydata[row];
4646
4747      if (data != 0xff)
4848      {
r20582r20583
259259
260260READ8_MEMBER( pc8401a_state::io_rom_data_r )
261261{
262   UINT8 *iorom = memregion("iorom")->base();
263
264262   //logerror("I/O ROM read from %05x\n", m_io_addr);
265263
266   return iorom[m_io_addr];
264   return m_io_rom->base()[m_io_addr];
267265}
268266
269267WRITE8_MEMBER( pc8401a_state::io_rom_addr_w )
r20582r20583
343341static ADDRESS_MAP_START( pc8500_io, AS_IO, 8, pc8401a_state )
344342   ADDRESS_MAP_UNMAP_HIGH
345343   ADDRESS_MAP_GLOBAL_MASK(0xff)
346   AM_RANGE(0x00, 0x00) AM_READ_PORT("KEY0")
347   AM_RANGE(0x01, 0x01) AM_READ_PORT("KEY1")
348   AM_RANGE(0x02, 0x02) AM_READ_PORT("KEY2")
349   AM_RANGE(0x03, 0x03) AM_READ_PORT("KEY3")
350   AM_RANGE(0x04, 0x04) AM_READ_PORT("KEY4")
351   AM_RANGE(0x05, 0x05) AM_READ_PORT("KEY5")
352   AM_RANGE(0x06, 0x06) AM_READ_PORT("KEY6")
353   AM_RANGE(0x07, 0x07) AM_READ_PORT("KEY7")
354   AM_RANGE(0x08, 0x08) AM_READ_PORT("KEY8")
355   AM_RANGE(0x09, 0x09) AM_READ_PORT("KEY9")
344   AM_RANGE(0x00, 0x00) AM_READ_PORT("Y0")
345   AM_RANGE(0x01, 0x01) AM_READ_PORT("Y1")
346   AM_RANGE(0x02, 0x02) AM_READ_PORT("Y2")
347   AM_RANGE(0x03, 0x03) AM_READ_PORT("Y3")
348   AM_RANGE(0x04, 0x04) AM_READ_PORT("Y4")
349   AM_RANGE(0x05, 0x05) AM_READ_PORT("Y5")
350   AM_RANGE(0x06, 0x06) AM_READ_PORT("Y6")
351   AM_RANGE(0x07, 0x07) AM_READ_PORT("Y7")
352   AM_RANGE(0x08, 0x08) AM_READ_PORT("Y8")
353   AM_RANGE(0x09, 0x09) AM_READ_PORT("Y9")
356354   AM_RANGE(0x10, 0x10) AM_WRITE(rtc_cmd_w)
357355   AM_RANGE(0x20, 0x20) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w)
358356   AM_RANGE(0x21, 0x21) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w)
r20582r20583
380378/* Input Ports */
381379
382380static INPUT_PORTS_START( pc8401a )
383   PORT_START("KEY0")
381   PORT_START("Y0")
384382   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP")// PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
385383   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
386384   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD )
r20582r20583
390388   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD )
391389   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD )
392390
393   PORT_START("KEY1")
391   PORT_START("Y1")
394392   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
395393   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
396394   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
r20582r20583
400398   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
401399   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
402400
403   PORT_START("KEY2")
401   PORT_START("Y2")
404402   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
405403   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
406404   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
r20582r20583
410408   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
411409   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
412410
413   PORT_START("KEY3")
411   PORT_START("Y3")
414412   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
415413   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
416414   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
r20582r20583
420418   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
421419   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
422420
423   PORT_START("KEY4")
421   PORT_START("Y4")
424422   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('*')
425423   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('*')
426424   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('*')
r20582r20583
430428   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
431429   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
432430
433   PORT_START("KEY5")
431   PORT_START("Y5")
434432   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('*')
435433   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('*')
436434   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('*')
r20582r20583
440438   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('*')
441439   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('*')
442440
443   PORT_START("KEY6")
441   PORT_START("Y6")
444442   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('*')
445443   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('*')
446444   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('*')
r20582r20583
450448   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('*')
451449   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
452450
453   PORT_START("KEY7")
451   PORT_START("Y7")
454452   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
455453   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) // ^I
456454   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
r20582r20583
460458   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
461459   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) // ^C
462460
463   PORT_START("KEY8")
461   PORT_START("Y8")
464462   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
465463   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6)
466464   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7)
r20582r20583
470468   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
471469   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
472470
473   PORT_START("KEY9")
471   PORT_START("Y9")
474472   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F8)
475473   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F9)
476474   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F10)
r20582r20583
489487   m_rtc->cs_w(1);
490488
491489   /* allocate CRT video RAM */
492   m_crt_ram = auto_alloc_array(machine(), UINT8, PC8401A_CRT_VIDEORAM_SIZE);
490   m_crt_ram.allocate(PC8401A_CRT_VIDEORAM_SIZE);
493491
494492   UINT8 *ram = m_ram->pointer();
495493
496494   /* set up A0/A1 memory banking */
497   membank("bank1")->configure_entries(0, 4, memregion(Z80_TAG)->base(), 0x8000);
495   membank("bank1")->configure_entries(0, 4, m_rom->base(), 0x8000);
498496   membank("bank1")->configure_entries(4, 2, ram, 0x8000);
499497   membank("bank1")->set_entry(0);
500498
r20582r20583
515513   bankswitch(0);
516514
517515   /* register for state saving */
518   save_pointer(NAME(m_crt_ram), PC8401A_CRT_VIDEORAM_SIZE);
519516   save_item(NAME(m_mmr));
520517   save_item(NAME(m_io_addr));
521518}
trunk/src/mess/drivers/mc1000.c
r20582r20583
164164   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) /* = '0' */
165165   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
166166
167   PORT_START("ROW0")
167   PORT_START("Y0")
168168   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@')
169169   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
170170   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
r20582r20583
173173   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
174174   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
175175
176   PORT_START("ROW1")
176   PORT_START("Y1")
177177   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
178178   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
179179   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
r20582r20583
182182   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
183183   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
184184
185   PORT_START("ROW2")
185   PORT_START("Y2")
186186   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
187187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
188188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
r20582r20583
191191   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*')
192192   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
193193
194   PORT_START("ROW3")
194   PORT_START("Y3")
195195   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
196196   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
197197   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
r20582r20583
200200   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
201201   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
202202
203   PORT_START("ROW4")
203   PORT_START("Y4")
204204   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
205205   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
206206   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
r20582r20583
209209   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
210210   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
211211
212   PORT_START("ROW5")
212   PORT_START("Y5")
213213   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
214214   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
215215   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
r20582r20583
218218   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
219219   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
220220
221   PORT_START("ROW6")
221   PORT_START("Y6")
222222   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
223223   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
224224   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
r20582r20583
227227   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
228228   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
229229
230   PORT_START("ROW7")
230   PORT_START("Y7")
231231   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
232232   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
233233   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
r20582r20583
287287
288288   if (!BIT(m_keylatch, 0))
289289   {
290      data &= ioport("ROW0")->read();
291      if (ioport("JOYBKEYMAP")->read()) data &= ioport("JOYB")->read();
290      data &= m_y0->read();
291      if (m_joybkeymap->read()) data &= m_joyb->read();
292292   }
293293   if (!BIT(m_keylatch, 1))
294294   {
295      data &= ioport("ROW1")->read();
296      if (ioport("JOYAKEYMAP")->read()) data &= ioport("JOYA")->read();
295      data &= m_y1->read();
296      if (m_joyakeymap->read()) data &= m_joya->read();
297297   }
298   if (!BIT(m_keylatch, 2)) data &= ioport("ROW2")->read();
299   if (!BIT(m_keylatch, 3)) data &= ioport("ROW3")->read();
300   if (!BIT(m_keylatch, 4)) data &= ioport("ROW4")->read();
301   if (!BIT(m_keylatch, 5)) data &= ioport("ROW5")->read();
302   if (!BIT(m_keylatch, 6)) data &= ioport("ROW6")->read();
303   if (!BIT(m_keylatch, 7)) data &= ioport("ROW7")->read();
298   if (!BIT(m_keylatch, 2)) data &= m_y2->read();
299   if (!BIT(m_keylatch, 3)) data &= m_y3->read();
300   if (!BIT(m_keylatch, 4)) data &= m_y4->read();
301   if (!BIT(m_keylatch, 5)) data &= m_y5->read();
302   if (!BIT(m_keylatch, 6)) data &= m_y6->read();
303   if (!BIT(m_keylatch, 7)) data &= m_y7->read();
304304
305   data = (ioport("MODIFIERS")->read() & 0xc0) | (data & 0x3f);
305   data = (m_modifiers->read() & 0xc0) | (data & 0x3f);
306306
307307   if (m_cassette->input() < +0.0) data &= 0x7f;
308308
r20582r20583
326326   address_space &program = m_maincpu->space(AS_PROGRAM);
327327
328328   /* setup memory banking */
329   UINT8 *rom = memregion(Z80_TAG)->base();
329   UINT8 *rom = m_rom->base();
330330
331331   program.install_readwrite_bank(0x0000, 0x1fff, "bank1");
332332   membank("bank1")->configure_entry(0, rom);
r20582r20583
496496
497497DRIVER_INIT_MEMBER(mc1000_state,mc1000)
498498{
499   machine().device(Z80_TAG)->memory().space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(mc1000_state::mc1000_direct_update_handler), this));
499   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(mc1000_state::mc1000_direct_update_handler), this));
500500}
501501
502502/* System Drivers */
trunk/src/mess/drivers/adam.c
r20582r20583
417417   {
418418      if (offset < 0x6000)
419419      {
420         data = m_boot_rom[offset];
420         data = m_boot_rom->base()[offset];
421421      }
422422      else
423423      {
424         data = m_boot_rom[(eos_enable << 13) + offset];
424         data = m_boot_rom->base()[(eos_enable << 13) + offset];
425425      }
426426   }
427427
r20582r20583
430430      switch (offset >> 13)
431431      {
432432      case 0: // U2
433         data = m_os7_rom[offset];
433         data = m_os7_rom->base()[offset];
434434         break;
435435
436436      case 1: break;
r20582r20583
440440      case 5: // CS2
441441      case 6: // CS3
442442      case 7: // CS4
443         data = m_cart_rom[offset & 0x7fff];
443         data = m_cart_rom->base()[offset & 0x7fff];
444444         break;
445445      }
446446   }
r20582r20583
10591059
10601060void adam_state::machine_start()
10611061{
1062   // find memory regions
1063   m_boot_rom = memregion("boot")->base();
1064   m_os7_rom = memregion("os7")->base();
1065   m_cart_rom = memregion("cart")->base();
1066
10671062   // state saving
10681063   save_item(NAME(m_mioc));
10691064   save_item(NAME(m_game));
trunk/src/mess/drivers/xor100.c
r20582r20583
553553{
554554   int banks = m_ram->size() / 0x10000;
555555   UINT8 *ram = m_ram->pointer();
556   UINT8 *rom = memregion(Z80_TAG)->base();
556   UINT8 *rom = m_rom->base();
557557
558558   /* setup memory banking */
559559   membank("bank1")->configure_entries(1, banks, ram, 0x10000);
trunk/src/mess/drivers/mpf1.c
r20582r20583
218218   UINT8 data = 0x7f;
219219
220220   /* bit 0 to 5, keyboard rows 0 to 5 */
221   if (!BIT(m_lednum, 0)) data &= ioport("PC0")->read();
222   if (!BIT(m_lednum, 1)) data &= ioport("PC1")->read();
223   if (!BIT(m_lednum, 2)) data &= ioport("PC2")->read();
224   if (!BIT(m_lednum, 3)) data &= ioport("PC3")->read();
225   if (!BIT(m_lednum, 4)) data &= ioport("PC4")->read();
226   if (!BIT(m_lednum, 5)) data &= ioport("PC5")->read();
221   if (!BIT(m_lednum, 0)) data &= m_pc0->read();
222   if (!BIT(m_lednum, 1)) data &= m_pc1->read();
223   if (!BIT(m_lednum, 2)) data &= m_pc2->read();
224   if (!BIT(m_lednum, 3)) data &= m_pc3->read();
225   if (!BIT(m_lednum, 4)) data &= m_pc4->read();
226   if (!BIT(m_lednum, 5)) data &= m_pc5->read();
227227
228228   /* bit 6, user key */
229   data &= ioport("SPECIAL")->read() & 1 ? 0xff : 0xbf;
229   data &= m_special->read() & 1 ? 0xff : 0xbf;
230230
231231   /* bit 7, tape input */
232232   data |= ((m_cassette)->input() > 0 ? 1 : 0) << 7;
trunk/src/mess/drivers/atarist.c
r20582r20583
428428
429429   */
430430
431   UINT8 x = ioport("IKBD_MOUSEX")->read_safe(0x00);
432   UINT8 y = ioport("IKBD_MOUSEY")->read_safe(0x00);
431   UINT8 x = m_mousex->read_safe(0x00);
432   UINT8 y = m_mousey->read_safe(0x00);
433433
434434   if (m_ikbd_mouse_pc == 0)
435435   {
r20582r20583
509509   UINT8 data = 0xff;
510510
511511   // keyboard data
512   if (!BIT(m_ikbd_keylatch, 1)) data &= ioport("P31")->read();
513   if (!BIT(m_ikbd_keylatch, 2)) data &= ioport("P32")->read();
514   if (!BIT(m_ikbd_keylatch, 3)) data &= ioport("P33")->read();
515   if (!BIT(m_ikbd_keylatch, 4)) data &= ioport("P34")->read();
516   if (!BIT(m_ikbd_keylatch, 5)) data &= ioport("P35")->read();
517   if (!BIT(m_ikbd_keylatch, 6)) data &= ioport("P36")->read();
518   if (!BIT(m_ikbd_keylatch, 7)) data &= ioport("P37")->read();
519   if (!BIT(m_ikbd_keylatch, 8)) data &= ioport("P40")->read();
520   if (!BIT(m_ikbd_keylatch, 9)) data &= ioport("P41")->read();
521   if (!BIT(m_ikbd_keylatch, 10)) data &= ioport("P42")->read();
522   if (!BIT(m_ikbd_keylatch, 11)) data &= ioport("P43")->read();
523   if (!BIT(m_ikbd_keylatch, 12)) data &= ioport("P44")->read();
524   if (!BIT(m_ikbd_keylatch, 13)) data &= ioport("P45")->read();
525   if (!BIT(m_ikbd_keylatch, 14)) data &= ioport("P46")->read();
526   if (!BIT(m_ikbd_keylatch, 15)) data &= ioport("P47")->read();
512   if (!BIT(m_ikbd_keylatch, 1)) data &= m_p31->read();
513   if (!BIT(m_ikbd_keylatch, 2)) data &= m_p32->read();
514   if (!BIT(m_ikbd_keylatch, 3)) data &= m_p33->read();
515   if (!BIT(m_ikbd_keylatch, 4)) data &= m_p34->read();
516   if (!BIT(m_ikbd_keylatch, 5)) data &= m_p35->read();
517   if (!BIT(m_ikbd_keylatch, 6)) data &= m_p36->read();
518   if (!BIT(m_ikbd_keylatch, 7)) data &= m_p37->read();
519   if (!BIT(m_ikbd_keylatch, 8)) data &= m_p40->read();
520   if (!BIT(m_ikbd_keylatch, 9)) data &= m_p41->read();
521   if (!BIT(m_ikbd_keylatch, 10)) data &= m_p42->read();
522   if (!BIT(m_ikbd_keylatch, 11)) data &= m_p43->read();
523   if (!BIT(m_ikbd_keylatch, 12)) data &= m_p44->read();
524   if (!BIT(m_ikbd_keylatch, 13)) data &= m_p45->read();
525   if (!BIT(m_ikbd_keylatch, 14)) data &= m_p46->read();
526   if (!BIT(m_ikbd_keylatch, 15)) data &= m_p47->read();
527527
528528   return data;
529529}
r20582r20583
547547
548548   */
549549
550   UINT8 data = ioport("IKBD_JOY1")->read_safe(0xff) & 0x06;
550   UINT8 data = m_joy1->read_safe(0xff) & 0x06;
551551
552552   // serial receive
553553   data |= m_ikbd_tx << 3;
r20582r20583
634634
635635   if (m_ikbd_joy) return 0xff;
636636
637   UINT8 data = ioport("IKBD_JOY0")->read_safe(0xff);
637   UINT8 data = m_joy0->read_safe(0xff);
638638
639   if ((ioport("config")->read() & 0x01) == 0)
639   if ((m_config->read() & 0x01) == 0)
640640   {
641641      data = (data & 0xf0) | m_ikbd_mouse;
642642   }
r20582r20583
726726{
727727   if (m_dmasnd_samples == 0)
728728   {
729      UINT8 *RAM = machine().device<ram_device>(RAM_TAG)->pointer();
729      UINT8 *RAM = m_ram->pointer();
730730
731731      for (int i = 0; i < 8; i++)
732732      {
r20582r20583
11371137
11381138   */
11391139
1140   return (ioport("SW400")->read() << 8) | 0xff;
1140   return (m_sw400->read() << 8) | 0xff;
11411141}
11421142
11431143
r20582r20583
19191919   // ring indicator
19201920
19211921   // monochrome monitor detect
1922   data |= ioport("config")->read() & 0x80;
1922   data |= m_config->read() & 0x80;
19231923
19241924   return data;
19251925}
r20582r20583
19891989   // ring indicator
19901990
19911991   // monochrome monitor detect, DMA sound active
1992   data |= (ioport("config")->read() & 0x80) ^ (m_dmasnd_active << 7);
1992   data |= (m_config->read() & 0x80) ^ (m_dmasnd_active << 7);
19931993
19941994   return data;
19951995}
trunk/src/mess/drivers/sg1000.c
r20582r20583
517517
518518WRITE_LINE_MEMBER(sg1000_state::sg1000_vdp_interrupt)
519519{
520   machine().device(Z80_TAG)->execute().set_input_line(INPUT_LINE_IRQ0, state);
520   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
521521}
522522
523523static TMS9928A_INTERFACE(sg1000_tms9918a_interface)
r20582r20583
546546       PA7     Keyboard input
547547   */
548548
549   static const char *const keynames[] = { "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7" };
549   ioport_port *ports[8] = { m_pa0, m_pa1, m_pa2, m_pa3, m_pa4, m_pa5, m_pa6, m_pa7 };
550550
551   return ioport(keynames[m_keylatch])->read();
551   return ports[m_keylatch]->read();
552552}
553553
554554READ8_MEMBER( sc3000_state::ppi_pb_r )
r20582r20583
566566       PB7     Cassette tape input
567567   */
568568
569   static const char *const keynames[] = { "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7" };
569   ioport_port *ports[8] = { m_pb0, m_pb1, m_pb2, m_pb3, m_pb4, m_pb5, m_pb6, m_pb7 };
570570
571571   /* keyboard */
572   UINT8 data = ioport(keynames[m_keylatch])->read();
572   UINT8 data = ports[m_keylatch]->read();
573573
574574   /* cartridge contact */
575575   data |= 0x10;
r20582r20583
578578   data |= 0x60;
579579
580580   /* tape input */
581   if ((m_cassette)->input() > +0.0) data |= 0x80;
581   if (m_cassette->input() > +0.0) data |= 0x80;
582582
583583   return data;
584584}
r20582r20583
647647   case 40 * 1024:
648648      program.install_read_bank(0x8000, 0x9fff, "bank1");
649649      program.unmap_write(0x8000, 0x9fff);
650      membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000);
650      membank("bank1")->configure_entry(0, m_rom->base() + 0x8000);
651651      membank("bank1")->set_entry(0);
652652      break;
653653
654654   case 48 * 1024:
655655      program.install_read_bank(0x8000, 0xbfff, "bank1");
656656      program.unmap_write(0x8000, 0xbfff);
657      membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000);
657      membank("bank1")->configure_entry(0, m_rom->base() + 0x8000);
658658      membank("bank1")->set_entry(0);
659659      break;
660660
r20582r20583
682682{
683683   running_machine &machine = image.device().machine();
684684   sg1000_state *state = machine.driver_data<sg1000_state>();
685   address_space &program = machine.device(Z80_TAG)->memory().space(AS_PROGRAM);
686   UINT8 *ptr = state->memregion(Z80_TAG)->base();
685   address_space &program = state->m_maincpu->space(AS_PROGRAM);
686   UINT8 *ptr = state->m_rom->base();
687687   UINT32 ram_size = 0x400;
688688   bool install_2000_ram = false;
689689   UINT32 size;
r20582r20583
797797   running_machine &machine = image.device().machine();
798798   sg1000_state *state = machine.driver_data<sg1000_state>();
799799   UINT32 size;
800   UINT8 *ptr = state->memregion(Z80_TAG)->base();
800   UINT8 *ptr = state->m_rom->base();
801801
802802   if (image.software_entry() == NULL)
803803   {
r20582r20583
853853{
854854   running_machine &machine = image.device().machine();
855855   sc3000_state *state = machine.driver_data<sc3000_state>();
856   UINT8 *ptr = state->memregion(Z80_TAG)->base();
856   UINT8 *ptr = state->m_rom->base();
857857   UINT32 size;
858858
859859   if (image.software_entry() == NULL)
r20582r20583
986986
987987TIMER_CALLBACK_MEMBER(sg1000_state::lightgun_tick)
988988{
989   UINT8 *rom = machine().root_device().memregion(Z80_TAG)->base();
989   UINT8 *rom = m_rom->base();
990990
991991   if (IS_CARTRIDGE_TV_DRAW(rom))
992992   {
r20582r20583
10351035void sf7000_state::machine_start()
10361036{
10371037   /* configure memory banking */
1038   membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base());
1038   membank("bank1")->configure_entry(0, m_rom->base());
10391039   membank("bank1")->configure_entry(1, m_ram->pointer());
10401040   membank("bank2")->configure_entry(0, m_ram->pointer());
10411041
trunk/src/mess/drivers/crvision.c
r20582r20583
380380-------------------------------------------------*/
381381
382382static INPUT_PORTS_START( manager )
383   PORT_START("ROW0")
383   PORT_START("Y0")
384384   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
385385   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
386386   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
r20582r20583
390390   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s')
391391   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
392392
393   PORT_START("ROW1")
393   PORT_START("Y1")
394394   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
395395   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
396396   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\x84 \xC3\xA4") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00C4) PORT_CHAR(0x00E4)
r20582r20583
400400   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a')
401401   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z')
402402
403   PORT_START("ROW2")
403   PORT_START("Y2")
404404   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i')
405405   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
406406   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
r20582r20583
410410   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
411411   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
412412
413   PORT_START("ROW3")
413   PORT_START("Y3")
414414   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
415415   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
416416   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\x96 \xC3\xB6") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00D6) PORT_CHAR(0x00F6)
r20582r20583
420420   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d')
421421   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c')
422422
423   PORT_START("ROW4")
423   PORT_START("Y4")
424424   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
425425   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
426426   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
r20582r20583
430430   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f')
431431   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v')
432432
433   PORT_START("ROW5")
433   PORT_START("Y5")
434434   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j')
435435   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
436436   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l')
r20582r20583
440440   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g')
441441   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b')
442442
443   PORT_START("ROW6")
443   PORT_START("Y6")
444444   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
445445   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s')
446446   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k')
r20582r20583
450450   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h')
451451   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
452452
453   PORT_START("ROW7")
453   PORT_START("Y7")
454454   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
455455   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
456456   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
r20582r20583
643643
644644   UINT8 data = 0xff;
645645
646   if (!BIT(m_keylatch, 0)) data &= ioport("ROW0")->read();
647   if (!BIT(m_keylatch, 1)) data &= ioport("ROW1")->read();
648   if (!BIT(m_keylatch, 2)) data &= ioport("ROW2")->read();
649   if (!BIT(m_keylatch, 3)) data &= ioport("ROW3")->read();
650   if (!BIT(m_keylatch, 4)) data &= ioport("ROW4")->read();
651   if (!BIT(m_keylatch, 5)) data &= ioport("ROW5")->read();
652   if (!BIT(m_keylatch, 6)) data &= ioport("ROW6")->read();
653   if (!BIT(m_keylatch, 7)) data &= ioport("ROW7")->read();
646   if (!BIT(m_keylatch, 0)) data &= m_y0->read();
647   if (!BIT(m_keylatch, 1)) data &= m_y1->read();
648   if (!BIT(m_keylatch, 2)) data &= m_y2->read();
649   if (!BIT(m_keylatch, 3)) data &= m_y3->read();
650   if (!BIT(m_keylatch, 4)) data &= m_y4->read();
651   if (!BIT(m_keylatch, 5)) data &= m_y5->read();
652   if (!BIT(m_keylatch, 6)) data &= m_y6->read();
653   if (!BIT(m_keylatch, 7)) data &= m_y7->read();
654654
655655   return data;
656656}
r20582r20583
675675{
676676   UINT8 data = 0xff;
677677
678   if (!BIT(m_joylatch, 0)) data &= ioport("JOY0")->read();
679   if (!BIT(m_joylatch, 1)) data &= ioport("JOY1")->read();
680   if (!BIT(m_joylatch, 2)) data &= ioport("JOY2")->read();
681   if (!BIT(m_joylatch, 3)) data &= ioport("JOY3")->read();
678   if (!BIT(m_joylatch, 0)) data &= m_joy0->read();
679   if (!BIT(m_joylatch, 1)) data &= m_joy1->read();
680   if (!BIT(m_joylatch, 2)) data &= m_joy2->read();
681   if (!BIT(m_joylatch, 3)) data &= m_joy3->read();
682682
683683   return data;
684684}
r20582r20583
776776};
777777
778778/*-------------------------------------------------
779    floppy_interface lasr2001_floppy_interface
780-------------------------------------------------*/
781
782static const floppy_interface lasr2001_floppy_interface =
783{
784   DEVCB_NULL,
785   DEVCB_NULL,
786   DEVCB_NULL,
787   DEVCB_NULL,
788   DEVCB_NULL,
789   FLOPPY_STANDARD_5_25_SSDD,
790   LEGACY_FLOPPY_OPTIONS_NAME(default),
791   NULL,
792   NULL
793};
794
795/*-------------------------------------------------
796779    centronics_interface lasr2001_centronics_intf
797780-------------------------------------------------*/
798781
r20582r20583
853836   running_machine &machine = image.device().machine();
854837   crvision_state *state = machine.driver_data<crvision_state>();
855838   UINT8 *mem = state->memregion(M6502_TAG)->base();
856   address_space &program = machine.device(M6502_TAG)->memory().space(AS_PROGRAM);
839   address_space &program = state->m_maincpu->space(AS_PROGRAM);
857840
858841   if (image.software_entry() == NULL)
859842   {
r20582r20583
945928      return IMAGE_INIT_FAIL;
946929   }
947930
948   state->membank("bank1")->configure_entry(0, mem + 0x8000);
949   state->membank("bank1")->set_entry(0);
931   state->membank(BANK_ROM1)->configure_entry(0, mem + 0x8000);
932   state->membank(BANK_ROM1)->set_entry(0);
950933
951   state->membank("bank2")->configure_entry(0, mem + 0x4000);
952   state->membank("bank2")->set_entry(0);
934   state->membank(BANK_ROM2)->configure_entry(0, mem + 0x4000);
935   state->membank(BANK_ROM2)->set_entry(0);
953936
954937   auto_free(machine, temp_copy);
955938
r20582r20583
10331016   // devices
10341017   MCFG_PIA6821_ADD(PIA6821_TAG, lasr2001_pia_intf)
10351018   MCFG_CASSETTE_ADD(CASSETTE_TAG, lasr2001_cassette_interface)
1036   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, lasr2001_floppy_interface)
10371019   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, lasr2001_centronics_intf)
10381020
10391021   // video hardware
trunk/src/mess/drivers/newbrain.c
r20582r20583
8787      case 0:
8888         /* ROM */
8989         memory_install_rom_helper(program, bank_name, bank_start, bank_end);
90         membank(bank_name)->configure_entry(0, memregion("eim")->base() + eim_bank_start);
90         membank(bank_name)->configure_entry(0, m_eim_rom->base() + eim_bank_start);
9191         break;
9292
9393      case 2:
r20582r20583
119119      {
120120         /* all banks point to ROM at 0xe000 */
121121         memory_install_rom_helper(program, bank_name, bank_start, bank_end);
122         membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + 0xe000);
122         membank(bank_name)->configure_entry(0, m_rom->base() + 0xe000);
123123      }
124124      else
125125      {
126         membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + bank_start);
126         membank(bank_name)->configure_entry(0, m_rom->base() + bank_start);
127127
128128         if (bank < 5)
129129         {
r20582r20583
133133         else if (bank == 5)
134134         {
135135            /* 0x8000-0x9fff */
136            if (machine().root_device().memregion("eim")->base())
136            if (m_eim_rom->base())
137137            {
138138               /* expansion interface ROM */
139139               memory_install_rom_helper(program, bank_name, bank_start, bank_end);
140               membank(bank_name)->configure_entry(0, memregion("eim")->base() + 0x4000);
140               membank(bank_name)->configure_entry(0, m_eim_rom->base() + 0x4000);
141141            }
142142            else
143143            {
144144               /* mirror of 0xa000-0xbfff */
145               if (machine().root_device().memregion(Z80_TAG)->base()[0xa001] == 0)
145               if (m_rom->base()[0xa001] == 0)
146146               {
147147                  /* unmapped on the M model */
148148                  memory_install_unmapped(program, bank_name, bank_start, bank_end);
r20582r20583
153153                  memory_install_rom_helper(program, bank_name, bank_start, bank_end);
154154               }
155155
156               membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + 0xa000);
156               membank(bank_name)->configure_entry(0, m_rom->base() + 0xa000);
157157            }
158158         }
159159         else if (bank == 6)
160160         {
161161            /* 0xa000-0xbfff */
162            if (machine().root_device().memregion(Z80_TAG)->base()[0xa001] == 0)
162            if (m_rom->base()[0xa001] == 0)
163163            {
164164               /* unmapped on the M model */
165165               memory_install_unmapped(program, bank_name, bank_start, bank_end);
r20582r20583
443443
444444   */
445445
446   static const char *const keynames[] = {
447      "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7",
448      "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15"
449   };
446   ioport_port* ports[16] = { m_y0, m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7,
447                   m_y8, m_y9, m_y10, m_y11, m_y12, m_y13, m_y14, m_y15 };
450448
451449   /* keyboard row reset */
452450
r20582r20583
473471         m_keylatch = 0;
474472      }
475473
476      m_keydata = ioport(keynames[m_keylatch])->read();
474      m_keydata = ports[m_keylatch]->read();
477475
478476      output_set_digit_value(m_keylatch, m_segment_data[m_keylatch]);
479477   }
r20582r20583
10571055/* Input Ports */
10581056
10591057static INPUT_PORTS_START( newbrain )
1060   PORT_START("D0")
1058   PORT_START("Y0")
10611059   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
10621060   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
10631061   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
10641062   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
10651063
1066   PORT_START("D1")
1064   PORT_START("Y1")
10671065   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
10681066   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
10691067   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
10701068   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
10711069
1072   PORT_START("D2")
1070   PORT_START("Y2")
10731071   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
10741072   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
10751073   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
10761074   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
10771075
1078   PORT_START("D3")
1076   PORT_START("Y3")
10791077   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
10801078   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
10811079   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
10821080   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
10831081
1084   PORT_START("D4")
1082   PORT_START("Y4")
10851083   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
10861084   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
10871085   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
10881086   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
10891087
1090   PORT_START("D5")
1088   PORT_START("Y5")
10911089   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
10921090   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('(') PORT_CHAR('[')
10931091   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
10941092   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
10951093
1096   PORT_START("D6")
1094   PORT_START("Y6")
10971095   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
10981096   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(')') PORT_CHAR(']')
10991097   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
11001098   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
11011099
1102   PORT_START("D7")
1100   PORT_START("Y7")
11031101   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
11041102   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("* \xC2\xA3") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR(0x00A3)
11051103   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
11061104   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
11071105
1108   PORT_START("D8")
1106   PORT_START("Y8")
11091107   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
11101108   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("VIDEO TEXT") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) // Vd
11111109   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
11121110   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
11131111
1114   PORT_START("D9")
1112   PORT_START("Y9")
11151113   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
11161114   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
11171115   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
11181116   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
11191117
1120   PORT_START("D10")
1118   PORT_START("Y10")
11211119   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
11221120   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('@')
11231121   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
11241122   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
11251123
1126   PORT_START("D11")
1124   PORT_START("Y11")
11271125   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
11281126   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('-') PORT_CHAR('\\')
11291127   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
11301128   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
11311129
1132   PORT_START("D12")
1130   PORT_START("Y12")
11331131   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
11341132   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('+') PORT_CHAR('^')
11351133   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
11361134   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("INSERT") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
11371135
1138   PORT_START("D13")
1136   PORT_START("Y13")
11391137   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
11401138   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("NEW LINE") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) // NL
11411139   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
11421140   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
11431141
1144   PORT_START("D14")
1142   PORT_START("Y14")
11451143   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
11461144   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
11471145   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
11481146   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) // CH
11491147
1150   PORT_START("D15")
1148   PORT_START("Y15")
11511149   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // SH
11521150   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("GRAPHICS") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) // GR
11531151   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REPEAT") // RPT
trunk/src/mess/drivers/kyocera.c
r20582r20583
6565
6666/* Read/Write Handlers */
6767
68static UINT8 read_keyboard(running_machine &machine, UINT16 keylatch)
69{
70   UINT8 data = 0xff;
71
72   if (!BIT(keylatch, 0)) data &= machine.root_device().ioport("KEY0")->read();
73   if (!BIT(keylatch, 1)) data &= machine.root_device().ioport("KEY1")->read();
74   if (!BIT(keylatch, 2)) data &= machine.root_device().ioport("KEY2")->read();
75   if (!BIT(keylatch, 3)) data &= machine.root_device().ioport("KEY3")->read();
76   if (!BIT(keylatch, 4)) data &= machine.root_device().ioport("KEY4")->read();
77   if (!BIT(keylatch, 5)) data &= machine.root_device().ioport("KEY5")->read();
78   if (!BIT(keylatch, 6)) data &= machine.root_device().ioport("KEY6")->read();
79   if (!BIT(keylatch, 7)) data &= machine.root_device().ioport("KEY7")->read();
80   if (!BIT(keylatch, 8)) data &= machine.root_device().ioport("KEY8")->read();
81
82   return data;
83}
84
8568READ8_MEMBER( pc8201_state::bank_r )
8669{
8770   /*
r20582r20583
274257   data |= 0x20;
275258
276259   // low power sensor
277   data |= BIT(ioport("BATTERY")->read(), 0) << 7;
260   data |= BIT(m_battery->read(), 0) << 7;
278261
279262   return data;
280263}
r20582r20583
316299   data |= 0x20;
317300
318301   // low power sensor
319   data |= BIT(ioport("BATTERY")->read(), 0) << 7;
302   data |= BIT(m_battery->read(), 0) << 7;
320303
321304   return data;
322305}
r20582r20583
391374
392375   if (m_rom_sel)
393376   {
394      data = memregion("option")->base()[m_rom_addr & 0x1ffff];
377      data = m_option->base()[m_rom_addr & 0x1ffff];
395378   }
396379
397380   return data;
r20582r20583
449432
450433READ8_MEMBER( kc85_state::keyboard_r )
451434{
452   return read_keyboard(machine(), m_keylatch);
435   UINT8 data = 0xff;
436
437   if (!BIT(m_keylatch, 0)) data &= m_y0->read();
438   if (!BIT(m_keylatch, 1)) data &= m_y1->read();
439   if (!BIT(m_keylatch, 2)) data &= m_y2->read();
440   if (!BIT(m_keylatch, 3)) data &= m_y3->read();
441   if (!BIT(m_keylatch, 4)) data &= m_y4->read();
442   if (!BIT(m_keylatch, 5)) data &= m_y5->read();
443   if (!BIT(m_keylatch, 6)) data &= m_y6->read();
444   if (!BIT(m_keylatch, 7)) data &= m_y7->read();
445   if (!BIT(m_keylatch, 8)) data &= m_y8->read();
446
447   return data;
453448}
454449
455450void tandy200_state::bankswitch(UINT8 data)
r20582r20583
497492
498493READ8_MEMBER( tandy200_state::stbk_r )
499494{
500   return read_keyboard(machine(), m_keylatch);
495   UINT8 data = 0xff;
496
497   if (!BIT(m_keylatch, 0)) data &= m_y0->read();
498   if (!BIT(m_keylatch, 1)) data &= m_y1->read();
499   if (!BIT(m_keylatch, 2)) data &= m_y2->read();
500   if (!BIT(m_keylatch, 3)) data &= m_y3->read();
501   if (!BIT(m_keylatch, 4)) data &= m_y4->read();
502   if (!BIT(m_keylatch, 5)) data &= m_y5->read();
503   if (!BIT(m_keylatch, 6)) data &= m_y6->read();
504   if (!BIT(m_keylatch, 7)) data &= m_y7->read();
505   if (!BIT(m_keylatch, 8)) data &= m_y8->read();
506
507   return data;
501508}
502509
503510WRITE8_MEMBER( tandy200_state::stbk_w )
r20582r20583
627634/* Input Ports */
628635
629636static INPUT_PORTS_START( kc85 )
630   PORT_START("KEY0")
637   PORT_START("Y0")
631638   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
632639   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
633640   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
r20582r20583
637644   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
638645   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
639646
640   PORT_START("KEY1")
647   PORT_START("Y1")
641648   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
642649   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
643650   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
r20582r20583
647654   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
648655   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
649656
650   PORT_START("KEY2")
657   PORT_START("Y2")
651658   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
652659   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
653660   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
r20582r20583
657664   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
658665   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
659666
660   PORT_START("KEY3")
667   PORT_START("Y3")
661668   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
662669   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
663670   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
r20582r20583
667674   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
668675   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
669676
670   PORT_START("KEY4")
677   PORT_START("Y4")
671678   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
672679   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
673680   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
r20582r20583
677684   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
678685   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
679686
680   PORT_START("KEY5")
687   PORT_START("Y5")
681688   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
682689   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
683690   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
r20582r20583
687694   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
688695   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
689696
690   PORT_START("KEY6")
697   PORT_START("Y6")
691698   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
692699   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PRINT") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11))
693700   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LABEL") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10))
r20582r20583
697704   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL BKSP") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
698705   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
699706
700   PORT_START("KEY7")
707   PORT_START("Y7")
701708   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
702709   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
703710   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
r20582r20583
707714   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
708715   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
709716
710   PORT_START("KEY8")
717   PORT_START("Y8")
711718   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
712719   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
713720   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
r20582r20583
726733static INPUT_PORTS_START( pc8201a )
727734   PORT_INCLUDE( kc85 )
728735
729   PORT_MODIFY("KEY3")
736   PORT_MODIFY("Y3")
730737   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(']') PORT_CHAR('}')
731738   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
732739   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
r20582r20583
734741   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') PORT_CHAR('|')
735742   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('^')
736743
737   PORT_MODIFY("KEY4")
744   PORT_MODIFY("Y4")
738745   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
739746   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
740747   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
741748   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
742749
743   PORT_MODIFY("KEY5")
750   PORT_MODIFY("Y5")
744751   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAST INS") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
745752   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
746753   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RALT) PORT_CHAR('[') PORT_CHAR('{')
r20582r20583
750757   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_')
751758   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
752759
753   PORT_MODIFY("KEY6")
760   PORT_MODIFY("Y6")
754761   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC)
755762   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92|") PORT_CODE(KEYCODE_TAB)
756763   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
r20582r20583
759766   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
760767   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL BKSP") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
761768
762   PORT_MODIFY("KEY7")
769   PORT_MODIFY("Y7")
763770   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
764771   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
765772   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
r20582r20583
769776   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
770777   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
771778
772   PORT_MODIFY("KEY8")
779   PORT_MODIFY("Y8")
773780   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
774781   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
775782   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
r20582r20583
778785INPUT_PORTS_END
779786
780787static INPUT_PORTS_START( olivm10 )
781   PORT_START("KEY0")
788   PORT_START("Y0")
782789   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
783790   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
784791   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
r20582r20583
788795   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
789796   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
790797
791   PORT_START("KEY1")
798   PORT_START("Y1")
792799   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~')
793800   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
794801   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_')
r20582r20583
798805   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
799806   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
800807
801   PORT_START("KEY2")
808   PORT_START("Y2")
802809   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
803810   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
804811   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
r20582r20583
808815   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`')
809816   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
810817
811   PORT_START("KEY3")
818   PORT_START("Y3")
812819   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
813820   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
814821   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
r20582r20583
818825   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('|')
819826   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
820827
821   PORT_START("KEY4")
828   PORT_START("Y4")
822829   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
823830   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
824831   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
r20582r20583
828835   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
829836   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
830837
831   PORT_START("KEY5")
838   PORT_START("Y5")
832839   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
833840   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
834841   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
r20582r20583
838845   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
839846   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
840847
841   PORT_START("KEY6")
848   PORT_START("Y6")
842849   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PASTE") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9))
843850   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
844851   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92|") PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')
r20582r20583
848855   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
849856   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
850857
851   PORT_START("KEY7")
858   PORT_START("Y7")
852859   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
853860   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
854861   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
r20582r20583
858865   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
859866   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
860867
861   PORT_START("KEY8")
868   PORT_START("Y8")
862869   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
863870   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
864871   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("NUM") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT))
r20582r20583
11361143   /* configure ROM banking */
11371144   program.install_read_bank(0x0000, 0x7fff, "bank1");
11381145   program.unmap_write(0x0000, 0x7fff);
1139   membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base());
1140   membank("bank1")->configure_entry(1, memregion("option")->base());
1146   membank("bank1")->configure_entry(0, m_rom->base());
1147   membank("bank1")->configure_entry(1, m_option->base());
11411148   membank("bank1")->set_entry(0);
11421149
11431150   /* configure RAM banking */
r20582r20583
11721179   m_rtc->oe_w(1);
11731180
11741181   /* configure ROM banking */
1175   membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base());
1176   membank("bank1")->configure_entry(1, memregion("option")->base());
1182   membank("bank1")->configure_entry(0, m_rom->base());
1183   membank("bank1")->configure_entry(1, m_option->base());
11771184   membank("bank1")->configure_entries(2, 2, ram + 0x8000, 0x8000);
11781185   membank("bank1")->set_entry(0);
11791186
r20582r20583
12031210   /* configure ROM banking */
12041211   program.install_read_bank(0x0000, 0x7fff, "bank1");
12051212   program.unmap_write(0x0000, 0x7fff);
1206   membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base());
1207   membank("bank1")->configure_entry(1, memregion("option")->base());
1213   membank("bank1")->configure_entry(0, m_rom->base());
1214   membank("bank1")->configure_entry(1, m_option->base());
12081215   membank("bank1")->set_entry(0);
12091216
12101217   /* configure RAM banking */
r20582r20583
12431250void tandy200_state::machine_start()
12441251{
12451252   /* configure ROM banking */
1246   membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base());
1247   membank("bank1")->configure_entry(1, memregion(I8085_TAG)->base() + 0x10000);
1248   membank("bank1")->configure_entry(2, memregion("option")->base());
1253   membank("bank1")->configure_entry(0, m_rom->base());
1254   membank("bank1")->configure_entry(1, m_rom->base() + 0x10000);
1255   membank("bank1")->configure_entry(2, m_option->base());
12491256   membank("bank1")->set_entry(0);
12501257
12511258   /* configure RAM banking */
trunk/src/mess/drivers/comx35.c
r20582r20583
3030
3131   if (offset < 0x4000)
3232   {
33      if (extrom) data = m_rom[offset & 0x3fff];
33      if (extrom) data = m_rom->base()[offset & 0x3fff];
3434   }
3535   else if (offset >= 0x4000 && offset < 0xc000)
3636   {
r20582r20583
136136
137137INPUT_CHANGED_MEMBER( comx35_state::trigger_reset )
138138{
139   if (newval && BIT(ioport("D6")->read(), 7))
139   if (newval && BIT(m_d6->read(), 7))
140140   {
141141      machine_reset();
142142   }
r20582r20583
459459   UINT8 *ram = m_ram->pointer();
460460   memset(ram, 0, m_ram->size());
461461
462   // find memory regions
463   m_rom = memregion(CDP1802_TAG)->base();
464
465462   // register for state saving
466463   save_item(NAME(m_clear));
467464   save_item(NAME(m_q));
trunk/src/mess/drivers/tiki100.c
r20582r20583
9494
9595READ8_MEMBER( tiki100_state::keyboard_r )
9696{
97   static const char *const keynames[] = { "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7", "ROW8", "ROW9", "ROW10", "ROW11", "ROW12" };
98   UINT8 data = ioport(keynames[m_keylatch])->read();
97   ioport_port *ports[12] = { m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7, m_y8, m_y9, m_y10, m_y11, m_y12 };
98   UINT8 data = ports[m_keylatch]->read();
9999
100100   m_keylatch++;
101101
r20582r20583
251251     12 | HJEM    | H?YRE   | 2 (num) | 3 (num) | ENTER   |         |         |         |
252252    ----+---------+---------+---------+---------+---------+---------+---------+---------+
253253*/
254   PORT_START("ROW1")
254   PORT_START("Y1")
255255   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
256256   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
257257   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BRYTT") PORT_CODE(KEYCODE_ESC)
r20582r20583
261261   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SLETT") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
262262   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
263263
264   PORT_START("ROW2")
264   PORT_START("Y2")
265265   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("GRAFIKK") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT))
266266   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
267267   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ANGRE") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
r20582r20583
271271   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
272272   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
273273
274   PORT_START("ROW3")
274   PORT_START("Y3")
275275   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
276276   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
277277   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
r20582r20583
281281   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
282282   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
283283
284   PORT_START("ROW4")
284   PORT_START("Y4")
285285   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
286286   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
287287   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
r20582r20583
291291   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
292292   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
293293
294   PORT_START("ROW5")
294   PORT_START("Y5")
295295   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
296296   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
297297   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
r20582r20583
301301   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
302302   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
303303
304   PORT_START("ROW6")
304   PORT_START("Y6")
305305   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
306306   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
307307   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
r20582r20583
311311   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
312312   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':')
313313
314   PORT_START("ROW7")
314   PORT_START("Y7")
315315   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=')
316316   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
317317   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\xB8 \xC3\x98") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f8) PORT_CHAR(0x00d8)
r20582r20583
321321   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\xA6 \xC3\x86") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e6) PORT_CHAR(0x00c6)
322322   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HJELP")
323323
324   PORT_START("ROW8")
324   PORT_START("Y8")
325325   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`')
326326   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('^') PORT_CHAR('|')
327327   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\'') PORT_CHAR('*')
r20582r20583
331331   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
332332   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SIDEOPP") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP))
333333
334   PORT_START("ROW9")
334   PORT_START("Y9")
335335   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
336336   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
337337   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
r20582r20583
341341   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("VTAB")
342342   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
343343
344   PORT_START("ROW10")
344   PORT_START("Y10")
345345   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD)
346346   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD)
347347   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad *") PORT_CODE(KEYCODE_ASTERISK)
r20582r20583
351351   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad %")
352352   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad =")
353353
354   PORT_START("ROW11")
354   PORT_START("Y11")
355355   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD)
356356   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD)
357357   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD)
r20582r20583
361361   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_DEL_PAD)
362362   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
363363
364   PORT_START("ROW12")
364   PORT_START("Y12")
365365   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HJEM") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
366366   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
367367   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD)
r20582r20583
552552   /* setup memory banking */
553553   UINT8 *ram = m_ram->pointer();
554554
555   membank("bank1")->configure_entry(BANK_ROM, memregion(Z80_TAG)->base());
555   membank("bank1")->configure_entry(BANK_ROM, m_rom->base());
556556   membank("bank1")->configure_entry(BANK_RAM, ram);
557557   membank("bank1")->configure_entry(BANK_VIDEO_RAM, m_video_ram);
558558
trunk/src/mess/drivers/vcs80.c
r20582r20583
7575/* Input Ports */
7676
7777static INPUT_PORTS_START( vcs80 )
78   PORT_START("ROW0")
78   PORT_START("Y0")
7979   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
8080   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
8181   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
r20582r20583
8585   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
8686   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
8787
88   PORT_START("ROW1")
88   PORT_START("Y1")
8989   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
9090   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
9191   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
r20582r20583
9595   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
9696   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
9797
98   PORT_START("ROW2")
98   PORT_START("Y2")
9999   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A+") PORT_CODE(KEYCODE_UP) PORT_CHAR('^')
100100   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A-") PORT_CODE(KEYCODE_DOWN) PORT_CHAR('V')
101101   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("MA") PORT_CODE(KEYCODE_M) PORT_CHAR('-')
r20582r20583
144144   data |= m_keylatch;
145145
146146   /* keyboard rows */
147   data |= BIT(ioport("ROW0")->read(), m_keylatch) << 4;
148   data |= BIT(ioport("ROW1")->read(), m_keylatch) << 5;
149   data |= BIT(ioport("ROW2")->read(), m_keylatch) << 6;
147   data |= BIT(m_y0->read(), m_keylatch) << 4;
148   data |= BIT(m_y1->read(), m_keylatch) << 5;
149   data |= BIT(m_y2->read(), m_keylatch) << 6;
150150
151151   /* demultiplexer clock */
152152   data |= (m_keyclk << 7);
trunk/src/mess/drivers/huebler.c
r20582r20583
2424
2525void amu880_state::scan_keyboard()
2626{
27   static const char *const keynames[] = { "Y0", "Y1", "Y2", "Y3", "Y4", "Y5", "Y6", "Y7", "Y8", "Y9", "Y10", "Y11", "Y12", "Y13", "Y14", "Y15" };
27   ioport_port* ports[16] = { m_y0, m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7,
28                   m_y8, m_y9, m_y10, m_y11, m_y12, m_y13, m_y14, m_y15 };
2829
29   UINT8 data = ioport(keynames[m_key_a8 ? m_key_d6 : m_key_d7])->read();
30   UINT8 data = ports[m_key_a8 ? m_key_d6 : m_key_d7]->read();
3031
3132   int a8 = (data & 0x0f) == 0x0f;
3233
r20582r20583
6869
6970   */
7071
71   UINT8 special = ioport("SPECIAL")->read();
72   UINT8 special = m_special->read();
7273
7374   int ctrl = BIT(special, 0);
7475   int shift = BIT(special, 2) & BIT(special, 1);
r20582r20583
7677
7778   UINT16 address = (ab0 << 9) | (m_key_a8 << 8) | (ctrl << 7) | (shift << 6) | (m_key_a5 << 5) | (m_key_a4 << 4) | m_key_d7;
7879
79   return m_kb_rom[address];
80   return m_kb_rom->base()[address];
8081}
8182
8283/* Memory Maps */
r20582r20583
209210
210211/* Video */
211212
212void amu880_state::video_start()
213{
214   // find memory regions
215   m_char_rom = memregion("chargen")->base();
216}
217
218213UINT32 amu880_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
219214{
220215   int y, sx, x, line;
r20582r20583
229224         UINT8 videoram_data = m_video_ram[videoram_addr & 0x7ff];
230225
231226         UINT16 charrom_addr = ((videoram_data & 0x7f) << 3) | line;
232         UINT8 data = m_char_rom[charrom_addr & 0x3ff];
227         UINT8 data = m_char_rom->base()[charrom_addr & 0x3ff];
233228
234229         for (x = 0; x < 6; x++)
235230         {
r20582r20583
340335
341336void amu880_state::machine_start()
342337{
343   /* find memory regions */
344   m_kb_rom = memregion("keyboard")->base();
345
346338   /* register for state saving */
347339   save_item(NAME(m_key_d6));
348340   save_item(NAME(m_key_d7));
trunk/src/mess/drivers/vidbrain.c
r20582r20583
9797
9898   */
9999
100   UINT8 data = ioport("JOY-R")->read();
100   UINT8 data = m_joy_r->read();
101101
102   if (BIT(m_keylatch, 0)) data |= ioport("IO00")->read();
103   if (BIT(m_keylatch, 1)) data |= ioport("IO01")->read();
104   if (BIT(m_keylatch, 2)) data |= ioport("IO02")->read();
105   if (BIT(m_keylatch, 3)) data |= ioport("IO03")->read();
106   if (BIT(m_keylatch, 4)) data |= ioport("IO04")->read();
107   if (BIT(m_keylatch, 5)) data |= ioport("IO05")->read();
108   if (BIT(m_keylatch, 6)) data |= ioport("IO06")->read();
109   if (BIT(m_keylatch, 7)) data |= ioport("IO07")->read();
110   if (!m_uv->kbd_r()) data |= ioport("UV201-31")->read();
102   if (BIT(m_keylatch, 0)) data |= m_io00->read();
103   if (BIT(m_keylatch, 1)) data |= m_io01->read();
104   if (BIT(m_keylatch, 2)) data |= m_io02->read();
105   if (BIT(m_keylatch, 3)) data |= m_io03->read();
106   if (BIT(m_keylatch, 4)) data |= m_io04->read();
107   if (BIT(m_keylatch, 5)) data |= m_io05->read();
108   if (BIT(m_keylatch, 6)) data |= m_io06->read();
109   if (BIT(m_keylatch, 7)) data |= m_io07->read();
110   if (!m_uv->kbd_r()) data |= m_uv201_31->read();
111111
112112   return data;
113113}
r20582r20583
430430   {
431431      UINT8 joydata = 0;
432432
433      if (!BIT(m_keylatch, 0)) joydata = ioport("JOY1-X")->read();
434      if (!BIT(m_keylatch, 1)) joydata = ioport("JOY1-Y")->read();
435      if (!BIT(m_keylatch, 2)) joydata = ioport("JOY2-X")->read();
436      if (!BIT(m_keylatch, 3)) joydata = ioport("JOY2-Y")->read();
437      if (!BIT(m_keylatch, 4)) joydata = ioport("JOY3-X")->read();
438      if (!BIT(m_keylatch, 5)) joydata = ioport("JOY3-Y")->read();
439      if (!BIT(m_keylatch, 6)) joydata = ioport("JOY4-X")->read();
440      if (!BIT(m_keylatch, 7)) joydata = ioport("JOY4-Y")->read();
433      if (!BIT(m_keylatch, 0)) joydata = m_joy1_x->read();
434      if (!BIT(m_keylatch, 1)) joydata = m_joy1_y->read();
435      if (!BIT(m_keylatch, 2)) joydata = m_joy2_x->read();
436      if (!BIT(m_keylatch, 3)) joydata = m_joy2_y->read();
437      if (!BIT(m_keylatch, 4)) joydata = m_joy3_x->read();
438      if (!BIT(m_keylatch, 5)) joydata = m_joy3_y->read();
439      if (!BIT(m_keylatch, 6)) joydata = m_joy4_x->read();
440      if (!BIT(m_keylatch, 7)) joydata = m_joy4_y->read();
441441
442442      // NE555 in monostable mode
443443      // R = 3K9 + 100K linear pot
trunk/src/mess/drivers/exp85.c
r20582r20583
195195   /* setup memory banking */
196196   program.install_read_bank(0x0000, 0x07ff, "bank1");
197197   program.unmap_write(0x0000, 0x07ff);
198   membank("bank1")->configure_entry(0, memregion(I8085A_TAG)->base() + 0xf000);
199   membank("bank1")->configure_entry(1, memregion(I8085A_TAG)->base());
198   membank("bank1")->configure_entry(0, m_rom->base() + 0xf000);
199   membank("bank1")->configure_entry(1, m_rom->base());
200200   membank("bank1")->set_entry(0);
201201}
202202
trunk/src/mess/drivers/bw12.c
r20582r20583
336336   {
337337      UINT8 code = state->m_video_ram[((ma + column) & BW12_VIDEORAM_MASK)];
338338      UINT16 addr = code << 4 | (ra & 0x0f);
339      UINT8 data = state->m_char_rom[addr & BW12_CHARROM_MASK];
339      UINT8 data = state->m_char_rom->base()[addr & BW12_CHARROM_MASK];
340340
341341      if (column == cursor_x)
342342      {
r20582r20583
371371   NULL
372372};
373373
374void bw12_state::video_start()
375{
376   /* find memory regions */
377   m_char_rom = memregion("chargen")->base();
378}
379
380374/* PIA6821 Interface */
381375
382376READ8_MEMBER( bw12_state::pia_pa_r )
r20582r20583
570564void bw12_state::machine_start()
571565{
572566   /* setup memory banking */
573   membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base());
567   membank("bank1")->configure_entry(0, m_rom->base());
574568   membank("bank1")->configure_entry(1, m_ram->pointer());
575569   membank("bank1")->configure_entries(2, 2, m_ram->pointer() + 0x10000, 0x8000);
576570
trunk/src/mess/drivers/aquarius.c
r20582r20583
171171
172172READ8_MEMBER(aquarius_state::cartridge_r)
173173{
174   UINT8 *rom = memregion("maincpu")->base() + 0xc000;
174   UINT8 *rom = m_rom->base() + 0xc000;
175175   return rom[offset] ^ m_scrambler;
176176}
177177
r20582r20583
183183DRIVER_INIT_MEMBER(aquarius_state,aquarius)
184184{
185185   /* install expansion memory if available */
186   if (machine().device<ram_device>(RAM_TAG)->size() > 0x1000)
186   if (m_ram->size() > 0x1000)
187187   {
188188      address_space &space = m_maincpu->space(AS_PROGRAM);
189189
trunk/src/mess/drivers/beta.c
r20582r20583
120120   default:
121121      if (!m_eprom_oe && !m_eprom_ce)
122122      {
123         data = m_eprom[m_eprom_addr & 0x7ff];
123         data = m_eprom->base()[m_eprom_addr & 0x7ff];
124124         popmessage("EPROM read %04x = %02x\n", m_eprom_addr & 0x7ff, data);
125125      }
126126   }
r20582r20583
207207   if (BIT(data, 6) && (!BIT(m_old_data, 7) && BIT(data, 7)))
208208   {
209209      popmessage("EPROM write %04x = %02x\n", m_eprom_addr & 0x7ff, m_eprom_data);
210      m_eprom[m_eprom_addr & 0x7ff] &= m_eprom_data;
210      m_eprom->base()[m_eprom_addr & 0x7ff] &= m_eprom_data;
211211   }
212212
213213   m_old_data = data;
r20582r20583
226226
227227static DEVICE_IMAGE_UNLOAD( beta_eprom )
228228{
229   UINT8 *ptr = image.device().machine().root_device().memregion(EPROM_TAG)->base();
229   beta_state *state = image.device().machine().driver_data<beta_state>();
230230
231   UINT8 *ptr = state->m_eprom->base();
232
231233   image.fwrite(ptr, 0x800);
232234}
233235
r20582r20583
237239{
238240   m_led_refresh_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(beta_state::led_refresh),this));
239241
240   // find memory regions
241   m_eprom = memregion(EPROM_TAG)->base();
242
243242   // state saving
244243   save_item(NAME(m_eprom_oe));
245244   save_item(NAME(m_eprom_ce));
trunk/src/mess/drivers/atom.c
r20582r20583
125125{
126126   address_space &program = m_maincpu->space(AS_PROGRAM);
127127
128   UINT8 *eprom = memregion(EXTROM_TAG)->base() + (m_eprom << 12);
128   UINT8 *eprom = m_extrom->base() + (m_eprom << 12);
129129
130130   program.install_rom(0xa000, 0xafff, eprom);
131131}
trunk/src/mess/drivers/c64.c
r20582r20583
88        - IRQ (WRONG $DC0D)
99        - NMI (WRONG $DD0D)
1010        - some CIA tests
11    - 64C PLA dump
11    - PDC Clipper (C64 in a briefcase with 3" floppy, electroluminescent flat screen, thermal printer)
12    - Tesa 6240 (modified SX64 with label printer)
1213
1314*/
1415
r20582r20583
121122   }
122123   if (!basic)
123124   {
124      data = m_basic[offset & 0x1fff];
125      if (m_basic != NULL)
126      {
127         data = m_basic->base()[offset & 0x1fff];
128      }
129      else
130      {
131         data = m_kernal->base()[offset & 0x1fff];
132      }
125133   }
126134   if (!kernal)
127135   {
128      data = m_kernal[offset & 0x1fff];
136      if (m_basic != NULL)
137      {
138         data = m_kernal->base()[offset & 0x1fff];
139      }
140      else
141      {
142         data = m_kernal->base()[0x2000 | (offset & 0x1fff)];
143      }
129144   }
130145   if (!charom)
131146   {
r20582r20583
278293   offs_t va = offset;
279294
280295   // A15/A14 are not connected to VIC so they are floating
281   offset |= 0xc000;
296   //offset |= 0xc000;
282297
283298   return read_memory(space, offset, va, aec, ba);
284299}
r20582r20583
894909   m_cassette->motor_w(BIT(data, 5));
895910}
896911
912
897913//-------------------------------------------------
898914//  M6510_INTERFACE( sx64_cpu_intf )
899915//-------------------------------------------------
r20582r20583
937953   m_charen = BIT(data, 2);
938954}
939955
956
940957//-------------------------------------------------
941958//  M6510_INTERFACE( c64gs_cpu_intf )
942959//-------------------------------------------------
r20582r20583
980997   m_charen = BIT(data, 2);
981998}
982999
1000
9831001//-------------------------------------------------
9841002//  PET_DATASSETTE_PORT_INTERFACE( datassette_intf )
9851003//-------------------------------------------------
r20582r20583
11011119
11021120void c64_state::machine_start()
11031121{
1104   // find memory regions
1105   m_basic = memregion("basic")->base();
1106   m_kernal = memregion("kernal")->base();
1107
11081122   // allocate memory
11091123   m_color_ram.allocate(0x400);
11101124
r20582r20583
11351149
11361150
11371151//-------------------------------------------------
1138//  MACHINE_START( c64c )
1139//-------------------------------------------------
1140
1141void c64c_state::machine_start()
1142{
1143   c64_state::machine_start();
1144
1145   // find memory regions
1146   m_basic = memregion(M6510_TAG)->base();
1147   m_kernal = memregion(M6510_TAG)->base() + 0x2000;
1148}
1149
1150
1151//-------------------------------------------------
1152//  MACHINE_START( c64gs )
1153//-------------------------------------------------
1154
1155void c64gs_state::machine_start()
1156{
1157   c64c_state::machine_start();
1158}
1159
1160
1161//-------------------------------------------------
11621152//  MACHINE_RESET( c64 )
11631153//-------------------------------------------------
11641154
r20582r20583
12101200   MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL)
12111201   MCFG_CBM_IEC_ADD(iec_intf, "c1541")
12121202   MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL)
1213   MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, NULL, NULL)
1203   MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL)
12141204   MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL)
12151205   MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL)
12161206
r20582r20583
16251615//-------------------------------------------------
16261616
16271617ROM_START( c64c )
1628   ROM_REGION( 0x4000, M6510_TAG, 0 )
1618   ROM_REGION( 0x4000, "kernal", 0 )
16291619   ROM_LOAD( "251913-01.u4", 0x0000, 0x4000, CRC(0010ec31) SHA1(765372a0e16cbb0adf23a07b80f6b682b39fbf88) )
16301620
16311621   ROM_REGION( 0x1000, "charom", 0 )
r20582r20583
16551645//-------------------------------------------------
16561646
16571647ROM_START( c64c_se )
1658   ROM_REGION( 0x4000, M6510_TAG, 0 )
1648   ROM_REGION( 0x4000, "kernal", 0 )
16591649   ROM_LOAD( "325182-01.u4", 0x0000, 0x4000, CRC(2aff27d3) SHA1(267654823c4fdf2167050f41faa118218d2569ce) ) // 128/64 FI
16601650
16611651   ROM_REGION( 0x1000, "charom", 0 )
r20582r20583
16711661//-------------------------------------------------
16721662
16731663ROM_START( c64gs )
1674   ROM_REGION( 0x4000, M6510_TAG, 0 )
1664   ROM_REGION( 0x4000, "kernal", 0 )
16751665   ROM_LOAD( "390852-01.u4", 0x0000, 0x4000, CRC(b0a9c2da) SHA1(21940ef5f1bfe67d7537164f7ca130a1095b067a) )
16761666
16771667   ROM_REGION( 0x1000, "charom", 0 )
r20582r20583
16981688COMP( 1984, sx64p,  c64,    0,      pal_sx,     c64,    driver_device,      0,      "Commodore Business Machines", "SX-64 / Executive 64 (PAL)",                GAME_SUPPORTS_SAVE )
16991689COMP( 1984, vip64,  c64,    0,      pal_sx,     c64sw,  driver_device,      0,      "Commodore Business Machines", "VIP-64 (Sweden/Finland)",                   GAME_SUPPORTS_SAVE )
17001690COMP( 1984, dx64,   c64,    0,      ntsc_dx,    c64,    driver_device,      0,      "Commodore Business Machines", "DX-64 (NTSC)",                              GAME_SUPPORTS_SAVE )
1701//COMP(1983, clipper,  c64,  0, c64pal,  clipper, XXX_CLASS, c64pal,  "PDC", "Clipper", GAME_NOT_WORKING) // C64 in a briefcase with 3" floppy, electroluminescent flat screen, thermal printer
1702//COMP(1983, tesa6240, c64,  0, c64pal,  c64, XXX_CLASS,     c64pal,  "Tesa", "6240", GAME_NOT_WORKING) // modified SX64 with label printer
17031691COMP( 1986, c64c,   c64,    0,      ntsc_c,     c64,    driver_device,      0,      "Commodore Business Machines", "Commodore 64C (NTSC)",                      GAME_SUPPORTS_SAVE )
17041692COMP( 1986, c64cp,  c64,    0,      pal_c,      c64,    driver_device,      0,      "Commodore Business Machines", "Commodore 64C (PAL)",                       GAME_SUPPORTS_SAVE )
17051693COMP( 1986, c64c_se,c64,    0,      pal_c,      c64sw,  driver_device,      0,      "Commodore Business Machines", "Commodore 64C (Sweden/Finland)",            GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/cosmicos.c
r20582r20583
7979
8080READ8_MEMBER( cosmicos_state::hex_keyboard_r )
8181{
82   static const char *const keynames[] = { "ROW1", "ROW2", "ROW3", "ROW4" };
82   ioport_port *ports[4] = { m_y1, m_y2, m_y3, m_y4 };
8383   UINT8 data = 0;
8484   int i;
8585
r20582r20583
8787   {
8888      if (BIT(m_keylatch, i))
8989      {
90         UINT8 keydata = ioport(keynames[i])->read();
90         UINT8 keydata = ports[i]->read();
9191
9292         if (BIT(keydata, 0)) data |= 0x01;
9393         if (BIT(keydata, 1)) data |= 0x02;
r20582r20583
159159
160160INPUT_CHANGED_MEMBER( cosmicos_state::data )
161161{
162   UINT8 data = ioport("DATA")->read();
162   UINT8 data = m_io_data->read();
163163   int i;
164164
165165   for (i = 0; i < 8; i++)
r20582r20583
308308   PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_NAME("Memory Protect") PORT_CHANGED_MEMBER(DEVICE_SELF, cosmicos_state, memory_protect, 0) PORT_TOGGLE
309309   PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_NAME("Memory Disable") PORT_CHANGED_MEMBER(DEVICE_SELF, cosmicos_state, memory_disable, 0) PORT_TOGGLE
310310
311   PORT_START("ROW1")
311   PORT_START("Y1")
312312   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
313313   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
314314   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
315315   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3')
316316
317   PORT_START("ROW2")
317   PORT_START("Y2")
318318   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4')
319319   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5')
320320   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
321321   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
322322
323   PORT_START("ROW3")
323   PORT_START("Y3")
324324   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
325325   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
326326   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
327327   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
328328
329   PORT_START("ROW4")
329   PORT_START("Y4")
330330   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
331331   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
332332   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
r20582r20583
395395
396396READ_LINE_MEMBER( cosmicos_state::ef1_r )
397397{
398   UINT8 special = ioport("SPECIAL")->read();
398   UINT8 special = m_special->read();
399399
400400   return BIT(special, 0);
401401}
402402
403403READ_LINE_MEMBER( cosmicos_state::ef2_r )
404404{
405   UINT8 special = ioport("SPECIAL")->read();
405   UINT8 special = m_special->read();
406406   int casin = (m_cassette)->input() < 0.0;
407407
408408   output_set_led_value(LED_CASSETTE, casin);
r20582r20583
412412
413413READ_LINE_MEMBER( cosmicos_state::ef3_r )
414414{
415   UINT8 special = ioport("SPECIAL")->read();
415   UINT8 special = m_special->read();
416416
417417   return BIT(special, 2) | BIT(special, 3);
418418}
419419
420420READ_LINE_MEMBER( cosmicos_state::ef4_r )
421421{
422   return BIT(ioport("BUTTONS")->read(), 0);
422   return BIT(m_buttons->read(), 0);
423423}
424424
425425static COSMAC_SC_WRITE( cosmicos_sc_w )
r20582r20583
528528
529529static QUICKLOAD_LOAD( cosmicos )
530530{
531   UINT8 *ptr = image.device().machine().root_device().memregion(CDP1802_TAG)->base();
531   cosmicos_state *state = image.device().machine().driver_data<cosmicos_state>();
532   UINT8 *ptr = state->m_rom->base();
532533   int size = image.length();
533534
534535   /* load image to RAM */
r20582r20583
609610   if (m_boot)
610611   {
611612      /* force A6 and A7 high */
612      direct.explicit_configure(0x0000, 0xffff, 0x3f3f, memregion(CDP1802_TAG)->base() + 0xc0);
613      direct.explicit_configure(0x0000, 0xffff, 0x3f3f, m_rom->base() + 0xc0);
613614      return ~0;
614615   }
615616
r20582r20583
618619
619620DRIVER_INIT_MEMBER(cosmicos_state,cosmicos)
620621{
621   address_space &program = machine().device(CDP1802_TAG)->memory().space(AS_PROGRAM);
622
623   program.set_direct_update_handler(direct_update_delegate(FUNC(cosmicos_state::cosmicos_direct_update_handler), this));
622   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(cosmicos_state::cosmicos_direct_update_handler), this));
624623}
625624
626625/*    YEAR  NAME        PARENT  COMPAT  MACHINE     INPUT       INIT        COMPANY             FULLNAME    FLAGS */
trunk/src/mess/drivers/vip.c
r20582r20583
244244
245245void vip_state::update_interrupts()
246246{
247   int irq = m_vdc_int | m_exp_int;
247   int irq = m_vdc_int || m_exp_int;
248248   int dma_in = m_exp_dma_in;
249   int dma_out = m_vdc_dma_out | m_exp_dma_out;
249   int dma_out = m_vdc_dma_out || m_exp_dma_out;
250250
251251   m_maincpu->set_input_line(COSMAC_INPUT_LINE_INT, irq);
252252   m_maincpu->set_input_line(COSMAC_INPUT_LINE_DMAIN, dma_in);
r20582r20583
268268
269269   if (cs)
270270   {
271      data = memregion(CDP1802_TAG)->base()[offset & 0x1ff];
271      data = m_rom->base()[offset & 0x1ff];
272272   }
273273   else if (!minh)
274274   {
r20582r20583
452452
453453READ_LINE_MEMBER( vip_state::ef1_r )
454454{
455   return m_vdc_ef1 | m_exp->ef1_r();
455   return m_vdc_ef1 || m_exp->ef1_r();
456456}
457457
458458READ_LINE_MEMBER( vip_state::ef2_r )
459459{
460   set_led_status(machine(), LED_TAPE, ((m_cassette)->input() > 0));
460   set_led_status(machine(), LED_TAPE, m_cassette->input() > 0);
461461
462   return ((m_cassette)->input() < 0) ? ASSERT_LINE : CLEAR_LINE;
462   return (m_cassette->input() < 0) ? ASSERT_LINE : CLEAR_LINE;
463463}
464464
465465READ_LINE_MEMBER( vip_state::ef3_r )
r20582r20583
469469
470470READ_LINE_MEMBER( vip_state::ef4_r )
471471{
472   return m_byteio_ef4 | m_exp_ef4;
472   return m_byteio_ef4 || m_exp_ef4;
473473}
474474
475475static COSMAC_SC_WRITE( vip_sc_w )
r20582r20583
704704   m_8000 = 1;
705705
706706   // internal speaker
707   m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0);
707   m_beeper->set_output_gain(0, m_io_beeper->read() ? 0.80 : 0);
708708
709709   // clear byte I/O latch
710710   m_byteio_data = 0;
r20582r20583
726726   if (strcmp(image.filetype(), "c8") == 0)
727727   {
728728      /* CHIP-8 program */
729      chip8_ptr = image.device().machine().root_device().memregion("chip8")->base();
730      chip8_size = image.device().machine().root_device().memregion("chip8")->bytes();
729      chip8_ptr = state->m_chip8->base();
730      chip8_size = state->m_chip8->bytes();
731731   }
732732   else if (strcmp(image.filename(), "c8x") == 0)
733733   {
734734      /* CHIP-8X program */
735      chip8_ptr = image.device().machine().root_device().memregion("chip8x")->base();
736      chip8_size = image.device().machine().root_device().memregion("chip8x")->bytes();
735      chip8_ptr = state->m_chip8x->base();
736      chip8_size = state->m_chip8x->bytes();
737737   }
738738
739   if ((size + chip8_size) > image.device().machine().device<ram_device>(RAM_TAG)->size())
739   if ((size + chip8_size) > state->m_ram->size())
740740   {
741741      return IMAGE_INIT_FAIL;
742742   }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team