trunk/src/mess/machine/mz700.c
r22508 | r22509 | |
171 | 171 | |
172 | 172 | /* ram from 0xa000 to 0xbfff */ |
173 | 173 | spc.install_readwrite_bank(0xa000, 0xbfff, "bank5"); |
174 | | membank("bank5")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xa000); |
| 174 | membank("bank5")->set_base(m_ram->pointer() + 0xa000); |
175 | 175 | } |
176 | 176 | } |
177 | 177 | |
r22508 | r22509 | |
183 | 183 | address_space &spc = m_maincpu->space(AS_PROGRAM); |
184 | 184 | |
185 | 185 | spc.install_readwrite_bank(0x0000, 0x0fff, "bank1"); |
186 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 186 | membank("bank1")->set_base(m_ram->pointer()); |
187 | 187 | } |
188 | 188 | |
189 | 189 | WRITE8_MEMBER(mz_state::mz800_bank_0_w) |
r22508 | r22509 | |
191 | 191 | address_space &spc = m_maincpu->space(AS_PROGRAM); |
192 | 192 | |
193 | 193 | spc.install_readwrite_bank(0x0000, 0x7fff, "bank1"); |
194 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 194 | membank("bank1")->set_base(m_ram->pointer()); |
195 | 195 | } |
196 | 196 | |
197 | 197 | READ8_MEMBER(mz_state::mz800_bank_1_r) |
r22508 | r22509 | |
200 | 200 | |
201 | 201 | /* switch in ram from 0x1000 to 0x1fff */ |
202 | 202 | spc.install_readwrite_bank(0x1000, 0x1fff, "bank2"); |
203 | | membank("bank2")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x1000); |
| 203 | membank("bank2")->set_base(m_ram->pointer() + 0x1000); |
204 | 204 | |
205 | 205 | if (m_mz700_mode) |
206 | 206 | { |
207 | 207 | /* ram from 0xc000 to 0xcfff */ |
208 | 208 | spc.install_readwrite_bank(0xc000, 0xcfff, "bank6"); |
209 | | membank("bank6")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xc000); |
| 209 | membank("bank6")->set_base(m_ram->pointer() + 0xc000); |
210 | 210 | } |
211 | 211 | else |
212 | 212 | { |
213 | 213 | /* ram from 0x8000 to 0xbfff */ |
214 | 214 | spc.install_readwrite_bank(0x8000, 0xbfff, "bank4"); |
215 | | membank("bank4")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x8000); |
| 215 | membank("bank4")->set_base(m_ram->pointer() + 0x8000); |
216 | 216 | } |
217 | 217 | |
218 | 218 | return 0xff; |
r22508 | r22509 | |
228 | 228 | if (!m_mz700_ram_lock) |
229 | 229 | { |
230 | 230 | spc.install_readwrite_bank(0xd000, 0xffff, "bank7"); |
231 | | membank("bank7")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xd000); |
| 231 | membank("bank7")->set_base(m_ram->pointer() + 0xd000); |
232 | 232 | m_mz700_ram_vram = FALSE; |
233 | 233 | } |
234 | 234 | } |
r22508 | r22509 | |
238 | 238 | if (!m_mz800_ram_lock) |
239 | 239 | { |
240 | 240 | spc.install_readwrite_bank(0xe000, 0xffff, "bank8"); |
241 | | membank("bank8")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xe000); |
| 241 | membank("bank8")->set_base(m_ram->pointer() + 0xe000); |
242 | 242 | m_mz800_ram_monitor = FALSE; |
243 | 243 | } |
244 | 244 | } |
r22508 | r22509 | |
313 | 313 | |
314 | 314 | /* rest is ram is always ram in mz700 mode */ |
315 | 315 | spc.install_readwrite_bank(0x1000, 0xcfff, "bank2"); |
316 | | membank("bank2")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x1000); |
| 316 | membank("bank2")->set_base(m_ram->pointer() + 0x1000); |
317 | 317 | } |
318 | 318 | else |
319 | 319 | { |
r22508 | r22509 | |
324 | 324 | |
325 | 325 | /* ram from 0x2000 to 0x7fff */ |
326 | 326 | spc.install_readwrite_bank(0x2000, 0x7fff, "bank3"); |
327 | | membank("bank3")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 327 | membank("bank3")->set_base(m_ram->pointer()); |
328 | 328 | |
329 | 329 | if (m_hires_mode) |
330 | 330 | { |
r22508 | r22509 | |
340 | 340 | |
341 | 341 | /* ram from 0xa000 to 0xbfff */ |
342 | 342 | spc.install_readwrite_bank(0xa000, 0xbfff, "bank5"); |
343 | | membank("bank5")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xa000); |
| 343 | membank("bank5")->set_base(m_ram->pointer() + 0xa000); |
344 | 344 | } |
345 | 345 | |
346 | 346 | /* ram from 0xc000 to 0xdfff */ |
347 | 347 | spc.install_readwrite_bank(0xc000, 0xdfff, "bank6"); |
348 | | membank("bank6")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xc000); |
| 348 | membank("bank6")->set_base(m_ram->pointer() + 0xc000); |
349 | 349 | |
350 | 350 | /* mz800 monitor rom from 0xe000 to 0xffff */ |
351 | 351 | spc.install_read_bank(0xe000, 0xffff, "bank8"); |
trunk/src/mess/machine/dgn_beta.c
r22508 | r22509 | |
231 | 231 | // |
232 | 232 | // Map block, $00-$BF are ram, $FC-$FF are Boot ROM |
233 | 233 | // |
234 | | if ((MapPage*4) < ((machine().device<ram_device>(RAM_TAG)->size() / 1024)-1)) // Block is ram |
| 234 | if ((MapPage*4) < ((m_ram->size() / 1024)-1)) // Block is ram |
235 | 235 | { |
236 | 236 | if (!is_last_page(Page)) |
237 | 237 | { |
238 | | readbank = &machine().device<ram_device>(RAM_TAG)->pointer()[MapPage*RamPageSize]; |
| 238 | readbank = &m_ram->pointer()[MapPage*RamPageSize]; |
239 | 239 | if(m_LogDatWrites) |
240 | 240 | debug_console_printf(machine(), "Mapping page %X, pageno=%X, mess_ram)[%X]\n",Page,MapPage,(MapPage*RamPageSize)); |
241 | 241 | } |
242 | 242 | else |
243 | 243 | { |
244 | | readbank = &machine().device<ram_device>(RAM_TAG)->pointer()[(MapPage*RamPageSize)-256]; |
| 244 | readbank = &m_ram->pointer()[(MapPage*RamPageSize)-256]; |
245 | 245 | logerror("Error RAM in Last page !\n"); |
246 | 246 | } |
247 | 247 | write8_delegate func = bank_info[Page].func; |
r22508 | r22509 | |
310 | 310 | |
311 | 311 | /* Map video ram to base of area it can use, that way we can take the literal RA */ |
312 | 312 | /* from the 6845 without having to mask it ! */ |
313 | | // videoram=&machine().device<ram_device>(RAM_TAG)->pointer()[TextVidBasePage*RamPageSize]; |
| 313 | // videoram=&m_ram->pointer()[TextVidBasePage*RamPageSize]; |
314 | 314 | } |
315 | 315 | |
316 | 316 | // Return the value of a page register |
r22508 | r22509 | |
1036 | 1036 | wd17xx_dden_w(fdc, CLEAR_LINE); |
1037 | 1037 | wd17xx_set_drive(fdc, 0); |
1038 | 1038 | |
1039 | | m_videoram.set_target(machine().device<ram_device>(RAM_TAG)->pointer(),m_videoram.bytes()); /* Point video ram at the start of physical ram */ |
| 1039 | m_videoram.set_target(m_ram->pointer(),m_videoram.bytes()); /* Point video ram at the start of physical ram */ |
1040 | 1040 | |
1041 | 1041 | wd17xx_reset(fdc); |
1042 | 1042 | m_wd2797_written=0; |
trunk/src/mess/machine/electron.c
r22508 | r22509 | |
171 | 171 | |
172 | 172 | WRITE8_MEMBER(electron_state::electron_ula_w) |
173 | 173 | { |
174 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
175 | 174 | int i = electron_palette_offset[(( offset >> 1 ) & 0x03)]; |
176 | 175 | logerror( "ULA: write offset %02x <- %02x\n", offset & 0x0f, data ); |
177 | 176 | switch( offset & 0x0f ) |
r22508 | r22509 | |
231 | 230 | case 0x06: /* Counter divider */ |
232 | 231 | if ( m_ula.communication_mode == 0x01) |
233 | 232 | { |
234 | | speaker->set_frequency( 1000000 / ( 16 * ( data + 1 ) ) ); |
| 233 | m_beeper->set_frequency( 1000000 / ( 16 * ( data + 1 ) ) ); |
235 | 234 | } |
236 | 235 | break; |
237 | 236 | case 0x07: /* Misc. */ |
r22508 | r22509 | |
239 | 238 | switch( m_ula.communication_mode ) |
240 | 239 | { |
241 | 240 | case 0x00: /* cassette input */ |
242 | | speaker->set_state( 0 ); |
| 241 | m_beeper->set_state( 0 ); |
243 | 242 | electron_tape_start(); |
244 | 243 | break; |
245 | 244 | case 0x01: /* sound generation */ |
246 | | speaker->set_state( 1 ); |
| 245 | m_beeper->set_state( 1 ); |
247 | 246 | electron_tape_stop(); |
248 | 247 | break; |
249 | 248 | case 0x02: /* cassette output */ |
250 | | speaker->set_state( 0 ); |
| 249 | m_beeper->set_state( 0 ); |
251 | 250 | electron_tape_stop(); |
252 | 251 | break; |
253 | 252 | case 0x03: /* not used */ |
254 | | speaker->set_state( 0 ); |
| 253 | m_beeper->set_state( 0 ); |
255 | 254 | electron_tape_stop(); |
256 | 255 | break; |
257 | 256 | } |
r22508 | r22509 | |
309 | 308 | |
310 | 309 | TIMER_CALLBACK_MEMBER(electron_state::setup_beep) |
311 | 310 | { |
312 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
313 | | speaker->set_state( 0 ); |
314 | | speaker->set_frequency( 300 ); |
| 311 | m_beeper->set_state( 0 ); |
| 312 | m_beeper->set_frequency( 300 ); |
315 | 313 | } |
316 | 314 | |
317 | 315 | void electron_state::machine_reset() |
trunk/src/mess/machine/samcoupe.c
r22508 | r22509 | |
114 | 114 | UINT8 *mem; |
115 | 115 | |
116 | 116 | /* bank 3 */ |
117 | | if (m_lext >> 6 < space.machine().device<ram_device>(RAM_TAG)->size() >> 20) |
118 | | mem = &space.machine().device<ram_device>(RAM_TAG)->pointer()[(space.machine().device<ram_device>(RAM_TAG)->size() & 0xfffff) + (m_lext >> 6) * 0x100000 + (m_lext & 0x3f) * 0x4000]; |
| 117 | if (m_lext >> 6 < m_ram->size() >> 20) |
| 118 | mem = &m_ram->pointer()[(m_ram->size() & 0xfffff) + (m_lext >> 6) * 0x100000 + (m_lext & 0x3f) * 0x4000]; |
119 | 119 | else |
120 | 120 | mem = NULL; |
121 | 121 | |
122 | 122 | samcoupe_update_bank(space, 3, mem, FALSE); |
123 | 123 | |
124 | 124 | /* bank 4 */ |
125 | | if (m_hext >> 6 < space.machine().device<ram_device>(RAM_TAG)->size() >> 20) |
126 | | mem = &space.machine().device<ram_device>(RAM_TAG)->pointer()[(space.machine().device<ram_device>(RAM_TAG)->size() & 0xfffff) + (m_hext >> 6) * 0x100000 + (m_hext & 0x3f) * 0x4000]; |
| 125 | if (m_hext >> 6 < m_ram->size() >> 20) |
| 126 | mem = &m_ram->pointer()[(m_ram->size() & 0xfffff) + (m_hext >> 6) * 0x100000 + (m_hext & 0x3f) * 0x4000]; |
127 | 127 | else |
128 | 128 | mem = NULL; |
129 | 129 | |
r22508 | r22509 | |
133 | 133 | |
134 | 134 | void samcoupe_state::samcoupe_update_memory(address_space &space) |
135 | 135 | { |
136 | | const int PAGE_MASK = ((machine().device<ram_device>(RAM_TAG)->size() & 0xfffff) / 0x4000) - 1; |
| 136 | const int PAGE_MASK = ((m_ram->size() & 0xfffff) / 0x4000) - 1; |
137 | 137 | UINT8 *rom = memregion("maincpu")->base(); |
138 | 138 | UINT8 *memory; |
139 | 139 | int is_readonly; |
r22508 | r22509 | |
142 | 142 | if (m_lmpr & LMPR_RAM0) /* Is ram paged in at bank 1 */ |
143 | 143 | { |
144 | 144 | if ((m_lmpr & 0x1F) <= PAGE_MASK) |
145 | | memory = &machine().device<ram_device>(RAM_TAG)->pointer()[(m_lmpr & PAGE_MASK) * 0x4000]; |
| 145 | memory = &m_ram->pointer()[(m_lmpr & PAGE_MASK) * 0x4000]; |
146 | 146 | else |
147 | 147 | memory = NULL; /* Attempt to page in non existant ram region */ |
148 | 148 | is_readonly = FALSE; |
r22508 | r22509 | |
157 | 157 | |
158 | 158 | /* BANK2 */ |
159 | 159 | if (((m_lmpr + 1) & 0x1f) <= PAGE_MASK) |
160 | | memory = &machine().device<ram_device>(RAM_TAG)->pointer()[((m_lmpr + 1) & PAGE_MASK) * 0x4000]; |
| 160 | memory = &m_ram->pointer()[((m_lmpr + 1) & PAGE_MASK) * 0x4000]; |
161 | 161 | else |
162 | 162 | memory = NULL; /* Attempt to page in non existant ram region */ |
163 | 163 | samcoupe_update_bank(space, 2, memory, FALSE); |
r22508 | r22509 | |
171 | 171 | { |
172 | 172 | /* BANK3 */ |
173 | 173 | if ((m_hmpr & 0x1F) <= PAGE_MASK ) |
174 | | memory = &machine().device<ram_device>(RAM_TAG)->pointer()[(m_hmpr & PAGE_MASK)*0x4000]; |
| 174 | memory = &m_ram->pointer()[(m_hmpr & PAGE_MASK)*0x4000]; |
175 | 175 | else |
176 | 176 | memory = NULL; /* Attempt to page in non existant ram region */ |
177 | 177 | samcoupe_update_bank(space, 3, memory, FALSE); |
r22508 | r22509 | |
186 | 186 | else |
187 | 187 | { |
188 | 188 | if (((m_hmpr + 1) & 0x1f) <= PAGE_MASK) |
189 | | memory = &space.machine().device<ram_device>(RAM_TAG)->pointer()[((m_hmpr + 1) & PAGE_MASK) * 0x4000]; |
| 189 | memory = &m_ram->pointer()[((m_hmpr + 1) & PAGE_MASK) * 0x4000]; |
190 | 190 | else |
191 | 191 | memory = NULL; /* Attempt to page in non existant ram region */ |
192 | 192 | is_readonly = FALSE; |
r22508 | r22509 | |
196 | 196 | |
197 | 197 | /* video memory location */ |
198 | 198 | if (m_vmpr & 0x40) /* if bit set in 2 bank screen mode */ |
199 | | m_videoram = &machine().device<ram_device>(RAM_TAG)->pointer()[((m_vmpr & 0x1e) & PAGE_MASK) * 0x4000]; |
| 199 | m_videoram = &m_ram->pointer()[((m_vmpr & 0x1e) & PAGE_MASK) * 0x4000]; |
200 | 200 | else |
201 | | m_videoram = &machine().device<ram_device>(RAM_TAG)->pointer()[((m_vmpr & 0x1f) & PAGE_MASK) * 0x4000]; |
| 201 | m_videoram = &m_ram->pointer()[((m_vmpr & 0x1f) & PAGE_MASK) * 0x4000]; |
202 | 202 | } |
203 | 203 | |
204 | 204 | |
trunk/src/mess/machine/apple2gs.c
r22508 | r22509 | |
1576 | 1576 | |
1577 | 1577 | if ((m_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) // shadow all banks and C0xx? |
1578 | 1578 | { |
1579 | | result = machine().device<ram_device>(RAM_TAG)->pointer()[address]; |
| 1579 | result = m_ram->pointer()[address]; |
1580 | 1580 | } |
1581 | 1581 | else if ((address & 0x000F00) == 0x000000) // accessing C0xx? |
1582 | 1582 | { |
r22508 | r22509 | |
1667 | 1667 | |
1668 | 1668 | if ((m_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) |
1669 | 1669 | { |
1670 | | machine().device<ram_device>(RAM_TAG)->pointer()[address] = data; |
| 1670 | m_ram->pointer()[address] = data; |
1671 | 1671 | } |
1672 | 1672 | else if ((address & 0x000F00) == 0x000000) |
1673 | 1673 | { |
r22508 | r22509 | |
1745 | 1745 | { |
1746 | 1746 | if ((m_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) |
1747 | 1747 | { |
1748 | | opptr = &machine().device<ram_device>(RAM_TAG)->pointer()[address]; |
| 1748 | opptr = &m_ram->pointer()[address]; |
1749 | 1749 | } |
1750 | 1750 | else if ((address & 0x000F00) == 0x000000) |
1751 | 1751 | { |
r22508 | r22509 | |
1829 | 1829 | // otherwise nothing works :) |
1830 | 1830 | if (m_is_rom3) |
1831 | 1831 | { |
1832 | | int ramsize = machine().device<ram_device>(RAM_TAG)->size(); |
| 1832 | int ramsize = m_ram->size(); |
1833 | 1833 | |
1834 | 1834 | // ROM 03 hardware: the quoted "1 MB" for a base machine doesn't include banks e0/e1, so map accordingly |
1835 | 1835 | space.install_readwrite_bank(0x010000, ramsize - 1, "bank1"); |
1836 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x010000); |
| 1836 | membank("bank1")->set_base(m_ram->pointer() + 0x010000); |
1837 | 1837 | |
1838 | 1838 | space.install_read_handler( ramsize, 0xdfffff, read8_delegate(FUNC(apple2gs_state::apple2gs_bank_echo_r),this)); |
1839 | 1839 | m_echo_bank = (ramsize >> 16); |
1840 | 1840 | } |
1841 | 1841 | else |
1842 | 1842 | { |
1843 | | int ramsize = machine().device<ram_device>(RAM_TAG)->size()-0x30000; |
| 1843 | int ramsize = m_ram->size()-0x30000; |
1844 | 1844 | |
1845 | 1845 | // ROM 00/01 hardware: the quoted "256K" for a base machine *does* include banks e0/e1. |
1846 | 1846 | space.install_readwrite_bank(0x010000, ramsize - 1 + 0x10000, "bank1"); |
1847 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x010000); |
| 1847 | membank("bank1")->set_base(m_ram->pointer() + 0x010000); |
1848 | 1848 | |
1849 | 1849 | space.install_read_handler( ramsize + 0x10000, 0xdfffff, read8_delegate(FUNC(apple2gs_state::apple2gs_bank_echo_r),this)); |
1850 | 1850 | m_echo_bank = (ramsize+0x10000) >> 16; |
r22508 | r22509 | |
1971 | 1971 | machine().device<nvram_device>("nvram")->set_base(m_clock_bram, sizeof(m_clock_bram)); |
1972 | 1972 | |
1973 | 1973 | /* save state stuff. note that the driver takes care of docram. */ |
1974 | | UINT8* ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
1975 | | state_save_register_item_pointer(machine(), "APPLE2GS_RAM", NULL, 0, ram, machine().device<ram_device>(RAM_TAG)->size()); |
| 1974 | UINT8* ram = m_ram->pointer(); |
| 1975 | state_save_register_item_pointer(machine(), "APPLE2GS_RAM", NULL, 0, ram, m_ram->size()); |
1976 | 1976 | |
1977 | 1977 | state_save_register_item(machine(), "NEWVIDEO", NULL, 0, m_newvideo); |
1978 | 1978 | state_save_register_item(machine(), "BORDERCOLOR", NULL, 0, m_bordercolor); |
trunk/src/mess/machine/llc.c
r22508 | r22509 | |
147 | 147 | /* Driver initialization */ |
148 | 148 | DRIVER_INIT_MEMBER(llc_state,llc2) |
149 | 149 | { |
150 | | m_p_videoram.set_target( machine().device<ram_device>(RAM_TAG)->pointer() + 0xc000,m_p_videoram.bytes()); |
| 150 | m_p_videoram.set_target( m_ram->pointer() + 0xc000,m_p_videoram.bytes()); |
151 | 151 | } |
152 | 152 | |
153 | 153 | MACHINE_RESET_MEMBER(llc_state,llc2) |
r22508 | r22509 | |
164 | 164 | membank("bank3")->set_base(memregion("maincpu")->base() + 0x6000); |
165 | 165 | |
166 | 166 | space.install_write_bank(0xc000, 0xffff, "bank4"); |
167 | | membank("bank4")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0xc000); |
| 167 | membank("bank4")->set_base(m_ram->pointer() + 0xc000); |
168 | 168 | |
169 | 169 | } |
170 | 170 | |
171 | 171 | WRITE8_MEMBER(llc_state::llc2_rom_disable_w) |
172 | 172 | { |
173 | 173 | address_space &mem_space = m_maincpu->space(AS_PROGRAM); |
174 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 174 | UINT8 *ram = m_ram->pointer(); |
175 | 175 | |
176 | 176 | mem_space.install_write_bank(0x0000, 0xbfff, "bank1"); |
177 | 177 | membank("bank1")->set_base(ram); |
r22508 | r22509 | |
198 | 198 | else |
199 | 199 | { |
200 | 200 | mem_space.install_write_bank(0x4000, 0x5fff, "bank2"); |
201 | | membank("bank2")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x4000); |
| 201 | membank("bank2")->set_base(m_ram->pointer() + 0x4000); |
202 | 202 | } |
203 | 203 | |
204 | 204 | } |
trunk/src/mess/machine/apple3.c
r22508 | r22509 | |
262 | 262 | { |
263 | 263 | if (bank != (UINT16) ~0) |
264 | 264 | { |
265 | | bank %= machine().device<ram_device>(RAM_TAG)->size() / 0x8000; |
266 | | if ((bank + 1) == (machine().device<ram_device>(RAM_TAG)->size() / 0x8000)) |
| 265 | bank %= m_ram->size() / 0x8000; |
| 266 | if ((bank + 1) == (m_ram->size() / 0x8000)) |
267 | 267 | bank = 0x02; |
268 | 268 | } |
269 | 269 | offset += ((offs_t) bank) * 0x8000; |
270 | | offset %= machine().device<ram_device>(RAM_TAG)->size(); |
271 | | return &machine().device<ram_device>(RAM_TAG)->pointer()[offset]; |
| 270 | offset %= m_ram->size(); |
| 271 | return &m_ram->pointer()[offset]; |
272 | 272 | } |
273 | 273 | |
274 | 274 | |
r22508 | r22509 | |
283 | 283 | if (LOG_MEMORY) |
284 | 284 | { |
285 | 285 | #ifdef PTR64 |
286 | | //logerror("\tbank %s --> %02x/%04x [0x%08lx]\n", mame_bank, (unsigned) bank, (unsigned)offset, ptr - machine().device<ram_device>(RAM_TAG)->pointer()); |
| 286 | //logerror("\tbank %s --> %02x/%04x [0x%08lx]\n", mame_bank, (unsigned) bank, (unsigned)offset, ptr - m_ram->pointer()); |
287 | 287 | #else |
288 | | logerror("\tbank %s --> %02x/%04x [0x%08lx]\n", mame_bank, (unsigned) bank, (unsigned)offset, ptr - machine().device<ram_device>(RAM_TAG)->pointer()); |
| 288 | logerror("\tbank %s --> %02x/%04x [0x%08lx]\n", mame_bank, (unsigned) bank, (unsigned)offset, ptr - m_ram->pointer()); |
289 | 289 | #endif |
290 | 290 | } |
291 | 291 | #endif |
r22508 | r22509 | |
568 | 568 | else if (offset > 0x9FFF) |
569 | 569 | result = apple3_bankaddr(~0, offset - 0x8000); |
570 | 570 | else |
571 | | result = &machine().device<ram_device>(RAM_TAG)->pointer()[offset - 0x2000]; |
| 571 | result = &m_ram->pointer()[offset - 0x2000]; |
572 | 572 | } |
573 | 573 | else if ((n >= 0x80) && (n <= 0x8E)) |
574 | 574 | { |
trunk/src/mess/machine/pc1350.c
r22508 | r22509 | |
96 | 96 | machine().scheduler().timer_set(attotime::from_seconds(1), timer_expired_delegate(FUNC(pc1350_state::pc1350_power_up),this)); |
97 | 97 | |
98 | 98 | space.install_readwrite_bank(0x6000, 0x6fff, "bank1"); |
99 | | membank("bank1")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x0000]); |
| 99 | membank("bank1")->set_base(&m_ram->pointer()[0x0000]); |
100 | 100 | |
101 | | if (machine().device<ram_device>(RAM_TAG)->size() >= 0x3000) |
| 101 | if (m_ram->size() >= 0x3000) |
102 | 102 | { |
103 | 103 | space.install_readwrite_bank(0x4000, 0x5fff, "bank2"); |
104 | | membank("bank2")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x1000]); |
| 104 | membank("bank2")->set_base(&m_ram->pointer()[0x1000]); |
105 | 105 | } |
106 | 106 | else |
107 | 107 | { |
108 | 108 | space.nop_readwrite(0x4000, 0x5fff); |
109 | 109 | } |
110 | 110 | |
111 | | if (machine().device<ram_device>(RAM_TAG)->size() >= 0x5000) |
| 111 | if (m_ram->size() >= 0x5000) |
112 | 112 | { |
113 | 113 | space.install_readwrite_bank(0x2000, 0x3fff, "bank3"); |
114 | | membank("bank3")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x3000]); |
| 114 | membank("bank3")->set_base(&m_ram->pointer()[0x3000]); |
115 | 115 | } |
116 | 116 | else |
117 | 117 | { |
trunk/src/mess/machine/genpc.c
r22508 | r22509 | |
564 | 564 | m_ppi8255(*this, "ppi8255"), |
565 | 565 | m_speaker(*this, "speaker"), |
566 | 566 | m_isabus(*this, "isa"), |
567 | | m_pc_kbdc(*this, "pc_kbdc") |
| 567 | m_pc_kbdc(*this, "pc_kbdc"), |
| 568 | m_ram(*this, RAM_TAG) |
568 | 569 | { |
569 | 570 | } |
570 | 571 | |
r22508 | r22509 | |
648 | 649 | install_device(this, 0x0080, 0x0087, 0, 0, FUNC(pc_page_r), FUNC(pc_page_w) ); |
649 | 650 | install_device_write(this, 0x00a0, 0x00a1, 0, 0, FUNC(nmi_enable_w)); |
650 | 651 | /* MESS managed RAM */ |
651 | | if ( machine().device<ram_device>(RAM_TAG)->pointer() ) |
652 | | membank( "bank10" )->set_base( machine().device<ram_device>(RAM_TAG)->pointer() ); |
| 652 | if ( m_ram->pointer() ) |
| 653 | membank( "bank10" )->set_base( m_ram->pointer() ); |
653 | 654 | } |
654 | 655 | |
655 | 656 | IRQ_CALLBACK_MEMBER(ibm5160_mb_device::pc_irq_callback) |
r22508 | r22509 | |
761 | 762 | * 6-7 The number of floppy disk drives |
762 | 763 | */ |
763 | 764 | data = ioport("DSW0")->read() & 0xF3; |
764 | | switch ( machine().device<ram_device>(RAM_TAG)->size() ) |
| 765 | switch ( m_ram->size() ) |
765 | 766 | { |
766 | 767 | case 16 * 1024: |
767 | 768 | data |= 0x00; |
r22508 | r22509 | |
799 | 800 | /* read hi nibble of SW2 */ |
800 | 801 | data = data & 0xf0; |
801 | 802 | |
802 | | switch ( machine().device<ram_device>(RAM_TAG)->size() - 64 * 1024 ) |
| 803 | switch ( m_ram->size() - 64 * 1024 ) |
803 | 804 | { |
804 | 805 | case 64 * 1024: data |= 0x00; break; |
805 | 806 | case 128 * 1024: data |= 0x02; break; |
r22508 | r22509 | |
817 | 818 | case 896 * 1024: data |= 0x0B; break; |
818 | 819 | case 960 * 1024: data |= 0x0D; break; |
819 | 820 | } |
820 | | if ( machine().device<ram_device>(RAM_TAG)->size() > 960 * 1024 ) |
| 821 | if ( m_ram->size() > 960 * 1024 ) |
821 | 822 | data |= 0x0D; |
822 | 823 | |
823 | 824 | PIO_LOG(1,"PIO_C_r (hi)",("$%02x\n", data)); |
trunk/src/mess/machine/c65.c
r22508 | r22509 | |
601 | 601 | READ8_MEMBER( c65_state::c65_ram_expansion_r ) |
602 | 602 | { |
603 | 603 | UINT8 data = 0xff; |
604 | | if (machine().device<ram_device>(RAM_TAG)->size() > (128 * 1024)) |
| 604 | if (m_ram->size() > (128 * 1024)) |
605 | 605 | data = m_expansion_ram.reg; |
606 | 606 | return data; |
607 | 607 | } |
r22508 | r22509 | |
611 | 611 | offs_t expansion_ram_begin; |
612 | 612 | offs_t expansion_ram_end; |
613 | 613 | |
614 | | if (space.machine().device<ram_device>(RAM_TAG)->size() > (128 * 1024)) |
| 614 | if (m_ram->size() > (128 * 1024)) |
615 | 615 | { |
616 | 616 | m_expansion_ram.reg = data; |
617 | 617 | |
618 | 618 | expansion_ram_begin = 0x80000; |
619 | | expansion_ram_end = 0x80000 + (machine().device<ram_device>(RAM_TAG)->size() - 128*1024) - 1; |
| 619 | expansion_ram_end = 0x80000 + (m_ram->size() - 128*1024) - 1; |
620 | 620 | |
621 | 621 | if (data == 0x00) { |
622 | 622 | space.install_readwrite_bank(expansion_ram_begin, expansion_ram_end,"bank16"); |
623 | | membank("bank16")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 128*1024); |
| 623 | membank("bank16")->set_base(m_ram->pointer() + 128*1024); |
624 | 624 | } else { |
625 | 625 | space.nop_readwrite(expansion_ram_begin, expansion_ram_end); |
626 | 626 | } |
r22508 | r22509 | |
985 | 985 | MACHINE_START_MEMBER(c65_state,c65) |
986 | 986 | { |
987 | 987 | /* clear upper memory */ |
988 | | memset(machine().device<ram_device>(RAM_TAG)->pointer() + 128*1024, 0xff, machine().device<ram_device>(RAM_TAG)->size() - 128*1024); |
| 988 | memset(m_ram->pointer() + 128*1024, 0xff, m_ram->size() - 128*1024); |
989 | 989 | |
990 | 990 | //removed cbm_drive_0_config (SERIAL, 10); |
991 | 991 | //removed cbm_drive_1_config (SERIAL, 11); |
trunk/src/mess/machine/galaxy.c
r22508 | r22509 | |
85 | 85 | m_maincpu->set_state_int(Z80_I, data[0x40]); |
86 | 86 | m_maincpu->set_state_int(Z80_R, (data[0x44] & 0x7f) | (data[0x48] & 0x80)); |
87 | 87 | |
88 | | memcpy (machine().device<ram_device>(RAM_TAG)->pointer(), data + 0x084c, (machine().device<ram_device>(RAM_TAG)->size() < 0x1800) ? machine().device<ram_device>(RAM_TAG)->size() : 0x1800); |
| 88 | memcpy (m_ram->pointer(), data + 0x084c, (m_ram->size() < 0x1800) ? m_ram->size() : 0x1800); |
89 | 89 | |
90 | 90 | break; |
91 | 91 | case GALAXY_SNAPSHOT_V2_SIZE: |
r22508 | r22509 | |
112 | 112 | m_maincpu->set_state_int(Z80_I, data[0x19]); |
113 | 113 | m_maincpu->set_state_int(Z80_R, data[0x1a]); |
114 | 114 | |
115 | | memcpy (machine().device<ram_device>(RAM_TAG)->pointer(), data + 0x0834, (machine().device<ram_device>(RAM_TAG)->size() < 0x1800) ? machine().device<ram_device>(RAM_TAG)->size() : 0x1800); |
| 115 | memcpy (m_ram->pointer(), data + 0x0834, (m_ram->size() < 0x1800) ? m_ram->size() : 0x1800); |
116 | 116 | |
117 | 117 | break; |
118 | 118 | } |
r22508 | r22509 | |
155 | 155 | space.install_readwrite_bank( 0x2800, 0x2800 + m_ram->size() - 1, "bank1"); |
156 | 156 | membank("bank1")->set_base(m_ram->pointer()); |
157 | 157 | |
158 | | if (machine().device<ram_device>(RAM_TAG)->size() < (6 + 48) * 1024) |
| 158 | if (m_ram->size() < (6 + 48) * 1024) |
159 | 159 | { |
160 | | space.nop_readwrite( 0x2800 + machine().device<ram_device>(RAM_TAG)->size(), 0xffff); |
| 160 | space.nop_readwrite( 0x2800 + m_ram->size(), 0xffff); |
161 | 161 | } |
162 | 162 | |
163 | 163 | for ( int i = 0; i < 8; i++ ) |
trunk/src/mess/machine/lviv.c
r22508 | r22509 | |
26 | 26 | |
27 | 27 | void lviv_state::lviv_update_memory () |
28 | 28 | { |
29 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 29 | UINT8 *ram = m_ram->pointer(); |
30 | 30 | |
31 | 31 | if (m_ppi_port_outputs[0][2] & 0x02) |
32 | 32 | { |
r22508 | r22509 | |
164 | 164 | address_space &cpuspace = m_maincpu->space(AS_PROGRAM); |
165 | 165 | if (m_startup_mem_map) |
166 | 166 | { |
167 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 167 | UINT8 *ram = m_ram->pointer(); |
168 | 168 | |
169 | 169 | m_startup_mem_map = 0; |
170 | 170 | |
r22508 | r22509 | |
226 | 226 | |
227 | 227 | space.set_direct_update_handler(direct_update_delegate(FUNC(lviv_state::lviv_directoverride), this)); |
228 | 228 | |
229 | | m_video_ram = machine().device<ram_device>(RAM_TAG)->pointer() + 0xc000; |
| 229 | m_video_ram = m_ram->pointer() + 0xc000; |
230 | 230 | |
231 | 231 | m_startup_mem_map = 1; |
232 | 232 | |
r22508 | r22509 | |
243 | 243 | |
244 | 244 | /*machine().scheduler().timer_pulse(TIME_IN_NSEC(200), FUNC(lviv_draw_pixel));*/ |
245 | 245 | |
246 | | /*memset(machine().device<ram_device>(RAM_TAG)->pointer(), 0, sizeof(unsigned char)*0xffff);*/ |
| 246 | /*memset(m_ram->pointer(), 0, sizeof(unsigned char)*0xffff);*/ |
247 | 247 | } |
248 | 248 | |
249 | 249 | |
r22508 | r22509 | |
287 | 287 | m_maincpu->set_state_int(I8085_PC, (hi << 8) | lo); |
288 | 288 | |
289 | 289 | /* Memory dump */ |
290 | | memcpy (machine().device<ram_device>(RAM_TAG)->pointer(), data+0x0011, 0xc000); |
291 | | memcpy (machine().device<ram_device>(RAM_TAG)->pointer()+0xc000, data+0x10011, 0x4000); |
| 290 | memcpy (m_ram->pointer(), data+0x0011, 0xc000); |
| 291 | memcpy (m_ram->pointer()+0xc000, data+0x10011, 0x4000); |
292 | 292 | |
293 | 293 | /* Ports */ |
294 | 294 | m_ppi_port_outputs[0][0] = data[0x14011+0xc0]; |
trunk/src/mess/includes/electron.h
r22508 | r22509 | |
12 | 12 | #define ELECTRON_H_ |
13 | 13 | |
14 | 14 | #include "imagedev/cassette.h" |
| 15 | #include "sound/beep.h" |
15 | 16 | |
16 | 17 | /* Interrupts */ |
17 | 18 | #define INT_HIGH_TONE 0x40 |
r22508 | r22509 | |
58 | 59 | electron_state(const machine_config &mconfig, device_type type, const char *tag) |
59 | 60 | : driver_device(mconfig, type, tag), |
60 | 61 | m_maincpu(*this, "maincpu"), |
61 | | m_cassette(*this, "cassette") { } |
| 62 | m_cassette(*this, "cassette"), |
| 63 | m_beeper(*this, "beeper") { } |
62 | 64 | |
63 | 65 | ULA m_ula; |
64 | 66 | emu_timer *m_tape_timer; |
r22508 | r22509 | |
84 | 86 | TIMER_CALLBACK_MEMBER(electron_scanline_interrupt); |
85 | 87 | required_device<cpu_device> m_maincpu; |
86 | 88 | required_device<cassette_image_device> m_cassette; |
| 89 | required_device<beep_device> m_beeper; |
87 | 90 | inline UINT8 read_vram( UINT16 addr ); |
88 | 91 | inline void electron_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color); |
89 | 92 | void electron_interrupt_handler(int mode, int interrupt); |
trunk/src/mess/includes/nc.h
r22508 | r22509 | |
6 | 6 | |
7 | 7 | #ifndef NC_H_ |
8 | 8 | #define NC_H_ |
| 9 | #include "machine/ram.h" |
| 10 | #include "sound/beep.h" |
9 | 11 | |
10 | | |
11 | 12 | #define NC_NUM_COLOURS 4 |
12 | 13 | |
13 | 14 | #define NC_SCREEN_WIDTH 480 |
r22508 | r22509 | |
30 | 31 | public: |
31 | 32 | nc_state(const machine_config &mconfig, device_type type, const char *tag) |
32 | 33 | : driver_device(mconfig, type, tag), |
33 | | m_maincpu(*this, "maincpu") { } |
| 34 | m_maincpu(*this, "maincpu"), |
| 35 | m_ram(*this, RAM_TAG), |
| 36 | m_beeper1(*this, "beep.1"), |
| 37 | m_beeper2(*this, "beep.2") { } |
34 | 38 | |
35 | 39 | emu_timer *m_serial_timer; |
36 | 40 | char m_memory_config[4]; |
r22508 | r22509 | |
103 | 107 | void nc100_machine_stop(); |
104 | 108 | void nc200_machine_stop(); |
105 | 109 | required_device<cpu_device> m_maincpu; |
| 110 | required_device<ram_device> m_ram; |
| 111 | required_device<beep_device> m_beeper1; |
| 112 | required_device<beep_device> m_beeper2; |
| 113 | |
106 | 114 | void nc200_video_set_backlight(int state); |
107 | 115 | void nc_card_save(device_image_interface &image); |
108 | 116 | int nc_card_calculate_mask(int size); |
trunk/src/mess/includes/gb.h
r22508 | r22509 | |
8 | 8 | #define GB_H_ |
9 | 9 | |
10 | 10 | #include "machine/gb_slot.h" |
| 11 | #include "machine/ram.h" |
11 | 12 | |
12 | | |
13 | 13 | /* Interrupts */ |
14 | 14 | #define VBL_INT 0 /* V-Blank */ |
15 | 15 | #define LCD_INT 1 /* LCD Status */ |
r22508 | r22509 | |
116 | 116 | m_custom(*this, "custom"), |
117 | 117 | m_region_maincpu(*this, "maincpu"), |
118 | 118 | m_rambank(*this, "cgb_ram"), |
119 | | m_inputs(*this, "INPUTS") { } |
| 119 | m_inputs(*this, "INPUTS"), |
| 120 | m_ram(*this, RAM_TAG) { } |
120 | 121 | |
121 | 122 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
122 | 123 | |
r22508 | r22509 | |
213 | 214 | required_memory_region m_region_maincpu; |
214 | 215 | optional_memory_bank m_rambank; // cgb |
215 | 216 | required_ioport m_inputs; |
| 217 | optional_device<ram_device> m_ram; |
216 | 218 | |
217 | 219 | void gb_timer_increment(); |
218 | 220 | void gb_timer_check_irq(); |
trunk/src/mess/includes/osi.h
r22508 | r22509 | |
45 | 45 | m_io_row6(*this, "ROW6"), |
46 | 46 | m_io_row7(*this, "ROW7"), |
47 | 47 | m_io_sound(*this, "Sound"), |
48 | | m_io_reset(*this, "Reset") |
| 48 | m_io_reset(*this, "Reset"), |
| 49 | m_beeper(*this, "beeper") |
49 | 50 | { } |
50 | 51 | |
51 | 52 | virtual void machine_start(); |
r22508 | r22509 | |
86 | 87 | required_ioport m_io_row7; |
87 | 88 | required_ioport m_io_sound; |
88 | 89 | required_ioport m_io_reset; |
| 90 | optional_device<beep_device> m_beeper; |
89 | 91 | }; |
90 | 92 | |
91 | 93 | class c1p_state : public sb2m600_state |
r22508 | r22509 | |
93 | 95 | public: |
94 | 96 | c1p_state(const machine_config &mconfig, device_type type, const char *tag) |
95 | 97 | : sb2m600_state(mconfig, type, tag), |
96 | | m_beep(*this, BEEPER_TAG) |
| 98 | m_beep(*this, "beeper") |
97 | 99 | { } |
98 | 100 | |
99 | 101 | required_device<beep_device> m_beep; |
trunk/src/mess/includes/rmnimbus.h
r22508 | r22509 | |
10 | 10 | #include "machine/wd17xx.h" |
11 | 11 | #include "machine/scsicb.h" |
12 | 12 | #include "machine/6522via.h" |
| 13 | #include "machine/ram.h" |
13 | 14 | |
14 | 15 | #define MAINCPU_TAG "maincpu" |
15 | 16 | #define IOCPU_TAG "iocpu" |
r22508 | r22509 | |
393 | 394 | rmnimbus_state(const machine_config &mconfig, device_type type, const char *tag) |
394 | 395 | : driver_device(mconfig, type, tag), |
395 | 396 | m_scsibus(*this, SCSIBUS_TAG ":host"), |
396 | | m_maincpu(*this, "maincpu") { |
| 397 | m_maincpu(*this, "maincpu"), |
| 398 | m_ram(*this, RAM_TAG) { |
397 | 399 | } |
398 | 400 | |
399 | 401 | required_device<scsicb_device> m_scsibus; |
r22508 | r22509 | |
469 | 471 | void nimbus_scsi_linechange( UINT8 mask, UINT8 state ); |
470 | 472 | IRQ_CALLBACK_MEMBER(int_callback); |
471 | 473 | required_device<cpu_device> m_maincpu; |
| 474 | required_device<ram_device> m_ram; |
472 | 475 | UINT8 get_pixel(UINT16 x, UINT16 y); |
473 | 476 | UINT16 read_pixel_line(UINT16 x, UINT16 y, UINT8 width); |
474 | 477 | UINT16 read_pixel_data(UINT16 x, UINT16 y); |
trunk/src/mess/includes/samcoupe.h
r22508 | r22509 | |
14 | 14 | #include "machine/wd_fdc.h" |
15 | 15 | #include "sound/speaker.h" |
16 | 16 | #include "imagedev/cassette.h" |
| 17 | #include "machine/ram.h" |
17 | 18 | |
18 | 19 | /* screen dimensions */ |
19 | 20 | #define SAM_BLOCK 8 |
r22508 | r22509 | |
42 | 43 | : driver_device(mconfig, type, tag), |
43 | 44 | m_maincpu(*this, "maincpu"), |
44 | 45 | m_speaker(*this, "speaker"), |
45 | | m_cassette(*this, "cassette") { |
| 46 | m_cassette(*this, "cassette"), |
| 47 | m_ram(*this, RAM_TAG) { |
46 | 48 | sam_bank_read_ptr[0] = NULL; |
47 | 49 | sam_bank_write_ptr[0] = NULL; |
48 | 50 | sam_bank_read_ptr[1] = NULL; |
r22508 | r22509 | |
124 | 126 | required_device<cpu_device> m_maincpu; |
125 | 127 | required_device<speaker_sound_device> m_speaker; |
126 | 128 | required_device<cassette_image_device> m_cassette; |
| 129 | required_device<ram_device> m_ram; |
127 | 130 | void draw_mode4_line(int y, int hpos); |
128 | 131 | void draw_mode3_line(int y, int hpos); |
129 | 132 | void draw_mode12_block(bitmap_ind16 &bitmap, int vpos, int hpos, UINT8 mask); |
trunk/src/mess/includes/pp01.h
r22508 | r22509 | |
9 | 9 | |
10 | 10 | #include "machine/pit8253.h" |
11 | 11 | #include "machine/i8255.h" |
| 12 | #include "machine/ram.h" |
12 | 13 | |
13 | 14 | class pp01_state : public driver_device |
14 | 15 | { |
15 | 16 | public: |
16 | 17 | pp01_state(const machine_config &mconfig, device_type type, const char *tag) |
17 | 18 | : driver_device(mconfig, type, tag), |
18 | | m_maincpu(*this, "maincpu") { } |
| 19 | m_maincpu(*this, "maincpu"), |
| 20 | m_ram(*this, RAM_TAG) { } |
19 | 21 | |
20 | 22 | UINT8 m_video_scroll; |
21 | 23 | UINT8 m_memory_block[16]; |
r22508 | r22509 | |
44 | 46 | DECLARE_WRITE8_MEMBER(pp01_8255_portc_w); |
45 | 47 | DECLARE_READ8_MEMBER(pp01_8255_portc_r); |
46 | 48 | required_device<cpu_device> m_maincpu; |
| 49 | required_device<ram_device> m_ram; |
47 | 50 | void pp01_video_w(UINT8 block,UINT16 offset,UINT8 data,UINT8 part); |
48 | 51 | void pp01_set_memory(UINT8 block, UINT8 data); |
49 | 52 | }; |
trunk/src/mess/includes/nascom1.h
r22508 | r22509 | |
10 | 10 | #include "imagedev/snapquik.h" |
11 | 11 | #include "machine/wd17xx.h" |
12 | 12 | #include "imagedev/cassette.h" |
| 13 | #include "machine/ram.h" |
13 | 14 | |
14 | 15 | struct nascom1_portstat_t |
15 | 16 | { |
r22508 | r22509 | |
32 | 33 | : driver_device(mconfig, type, tag), |
33 | 34 | m_videoram(*this, "videoram"), |
34 | 35 | m_maincpu(*this, "maincpu"), |
35 | | m_cassette(*this, "cassette") { } |
| 36 | m_cassette(*this, "cassette"), |
| 37 | m_ram(*this, RAM_TAG) { } |
36 | 38 | |
37 | 39 | required_shared_ptr<UINT8> m_videoram; |
38 | 40 | device_t *m_hd6402; |
r22508 | r22509 | |
61 | 63 | DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( nascom1_cassette ); |
62 | 64 | required_device<cpu_device> m_maincpu; |
63 | 65 | required_device<cassette_image_device> m_cassette; |
| 66 | required_device<ram_device> m_ram; |
64 | 67 | DECLARE_SNAPSHOT_LOAD_MEMBER( nascom1 ); |
65 | 68 | }; |
66 | 69 | |
trunk/src/mess/includes/enterp.h
r22508 | r22509 | |
13 | 13 | |
14 | 14 | #define NICK_PALETTE_SIZE 256 |
15 | 15 | |
16 | | |
| 16 | #include "machine/ram.h" |
17 | 17 | struct NICK_STATE; |
18 | 18 | |
19 | 19 | class ep_state : public driver_device |
r22508 | r22509 | |
21 | 21 | public: |
22 | 22 | ep_state(const machine_config &mconfig, device_type type, const char *tag) |
23 | 23 | : driver_device(mconfig, type, tag), |
24 | | m_maincpu(*this, "maincpu") { } |
| 24 | m_maincpu(*this, "maincpu"), |
| 25 | m_ram(*this, RAM_TAG) { } |
25 | 26 | |
26 | 27 | UINT8 exdos_card_value; /* state of the wd1770 irq/drq lines */ |
27 | 28 | UINT8 keyboard_line; /* index of keyboard line to read */ |
r22508 | r22509 | |
39 | 40 | DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_intrq_w); |
40 | 41 | DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_drq_w); |
41 | 42 | required_device<cpu_device> m_maincpu; |
| 43 | required_device<ram_device> m_ram; |
42 | 44 | void enterprise_update_memory_page(address_space &space, offs_t page, int index); |
43 | 45 | char Nick_FetchByte(unsigned long Addr); |
44 | 46 | void nick_write_pixel(int ci); |
trunk/src/mess/includes/llc.h
r22508 | r22509 | |
21 | 21 | public: |
22 | 22 | llc_state(const machine_config &mconfig, device_type type, const char *tag) |
23 | 23 | : driver_device(mconfig, type, tag), |
24 | | m_speaker(*this, "speaker"), |
25 | | m_p_videoram(*this, "videoram"), |
26 | | m_maincpu(*this, "maincpu") { } |
| 24 | m_speaker(*this, "speaker"), |
| 25 | m_p_videoram(*this, "videoram"), |
| 26 | m_maincpu(*this, "maincpu"), |
| 27 | m_ram(*this, RAM_TAG) { } |
27 | 28 | |
28 | 29 | DECLARE_WRITE8_MEMBER(llc2_rom_disable_w); |
29 | 30 | DECLARE_WRITE8_MEMBER(llc2_basic_enable_w); |
r22508 | r22509 | |
55 | 56 | UINT32 screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
56 | 57 | UINT32 screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
57 | 58 | required_device<cpu_device> m_maincpu; |
| 59 | optional_device<ram_device> m_ram; |
58 | 60 | }; |
59 | 61 | |
60 | 62 | |
trunk/src/mess/includes/aim65.h
r22508 | r22509 | |
35 | 35 | public: |
36 | 36 | aim65_state(const machine_config &mconfig, device_type type, const char *tag) |
37 | 37 | : driver_device(mconfig, type, tag), |
38 | | m_maincpu(*this, "maincpu"), |
39 | | m_cassette1(*this, "cassette"), |
40 | | m_cassette2(*this, "cassette2") |
| 38 | m_maincpu(*this, "maincpu"), |
| 39 | m_cassette1(*this, "cassette"), |
| 40 | m_cassette2(*this, "cassette2"), |
| 41 | m_ram(*this, RAM_TAG) |
41 | 42 | { } |
42 | 43 | |
43 | 44 | DECLARE_WRITE8_MEMBER(aim65_pia_a_w); |
r22508 | r22509 | |
56 | 57 | required_device<cpu_device> m_maincpu; |
57 | 58 | required_device<cassette_image_device> m_cassette1; |
58 | 59 | required_device<cassette_image_device> m_cassette2; |
| 60 | required_device<ram_device> m_ram; |
59 | 61 | virtual void machine_start(); |
60 | 62 | TIMER_CALLBACK_MEMBER(aim65_printer_timer); |
61 | 63 | void aim65_pia(); |
trunk/src/mess/includes/apple1.h
r22508 | r22509 | |
10 | 10 | #include "imagedev/snapquik.h" |
11 | 11 | #include "machine/6821pia.h" |
12 | 12 | #include "imagedev/cassette.h" |
| 13 | #include "machine/ram.h" |
13 | 14 | |
14 | 15 | typedef short termchar_t; |
15 | 16 | |
r22508 | r22509 | |
34 | 35 | apple1_state(const machine_config &mconfig, device_type type, const char *tag) |
35 | 36 | : driver_device(mconfig, type, tag), |
36 | 37 | m_maincpu(*this, "maincpu"), |
37 | | m_cassette(*this, "cassette") { } |
| 38 | m_cassette(*this, "cassette"), |
| 39 | m_ram(*this, RAM_TAG) { } |
38 | 40 | |
39 | 41 | int m_vh_clrscrn_pressed; |
40 | 42 | int m_kbd_data; |
r22508 | r22509 | |
80 | 82 | terminal_t *terminal_create(int gfx, int blank_char, int char_bits,int (*getcursorcode)(int original_code),int num_cols, int num_rows); |
81 | 83 | attotime apple1_vh_dsp_time_to_ready(); |
82 | 84 | DECLARE_SNAPSHOT_LOAD_MEMBER( apple1 ); |
| 85 | required_device<ram_device> m_ram; |
83 | 86 | }; |
84 | 87 | |
85 | 88 | |
trunk/src/mess/includes/x68k.h
r22508 | r22509 | |
12 | 12 | #include "machine/rp5c15.h" |
13 | 13 | #include "machine/upd765.h" |
14 | 14 | #include "sound/okim6258.h" |
| 15 | #include "machine/ram.h" |
15 | 16 | |
16 | | |
17 | 17 | #define MC68901_TAG "mc68901" |
18 | 18 | #define RP5C15_TAG "rp5c15" |
19 | 19 | |
r22508 | r22509 | |
55 | 55 | m_gvram32(*this, "gvram32"), |
56 | 56 | m_tvram32(*this, "tvram32"), |
57 | 57 | m_maincpu(*this, "maincpu"), |
58 | | m_okim6258(*this, "okim6258") { } |
| 58 | m_okim6258(*this, "okim6258"), |
| 59 | m_ram(*this, RAM_TAG) { } |
59 | 60 | |
60 | 61 | required_device<mc68901_device> m_mfpdev; |
61 | 62 | required_device<rp5c15_device> m_rtc; |
r22508 | r22509 | |
384 | 385 | public: |
385 | 386 | required_device<cpu_device> m_maincpu; |
386 | 387 | required_device<okim6258_device> m_okim6258; |
| 388 | required_device<ram_device> m_ram; |
387 | 389 | bitmap_ind16* x68k_get_gfx_page(int pri,int type); |
388 | 390 | attotime prescale(int val); |
389 | 391 | void mfp_trigger_irq(int irq); |
trunk/src/mess/includes/pc.h
r22508 | r22509 | |
16 | 16 | #include "machine/upd765.h" |
17 | 17 | #include "sound/speaker.h" |
18 | 18 | #include "imagedev/cassette.h" |
| 19 | #include "machine/ram.h" |
19 | 20 | |
20 | 21 | class pc_state : public driver_device |
21 | 22 | { |
r22508 | r22509 | |
26 | 27 | m_dma8237(*this, "dma8237"), |
27 | 28 | m_pc_kbdc(*this, "pc_kbdc"), |
28 | 29 | m_speaker(*this, "speaker"), |
29 | | m_cassette(*this, "cassette") { } |
| 30 | m_cassette(*this, "cassette"), |
| 31 | m_ram(*this, RAM_TAG) { } |
30 | 32 | |
31 | 33 | required_device<cpu_device> m_maincpu; |
32 | 34 | device_t *m_pic8259; |
r22508 | r22509 | |
35 | 37 | optional_device<pc_kbdc_device> m_pc_kbdc; |
36 | 38 | optional_device<speaker_sound_device> m_speaker; |
37 | 39 | optional_device<cassette_image_device> m_cassette; |
| 40 | optional_device<ram_device> m_ram; |
38 | 41 | |
39 | 42 | /* U73 is an LS74 - dual flip flop */ |
40 | 43 | /* Q2 is set by OUT1 from the 8253 and goes to DRQ1 on the 8237 */ |
trunk/src/mess/includes/lviv.h
r22508 | r22509 | |
11 | 11 | #include "machine/i8255.h" |
12 | 12 | #include "sound/speaker.h" |
13 | 13 | #include "imagedev/cassette.h" |
| 14 | #include "machine/ram.h" |
14 | 15 | |
15 | 16 | class lviv_state : public driver_device |
16 | 17 | { |
r22508 | r22509 | |
19 | 20 | : driver_device(mconfig, type, tag), |
20 | 21 | m_maincpu(*this, "maincpu"), |
21 | 22 | m_speaker(*this, "speaker"), |
22 | | m_cassette(*this, "cassette") { } |
| 23 | m_cassette(*this, "cassette"), |
| 24 | m_ram(*this, RAM_TAG) { } |
23 | 25 | |
24 | 26 | unsigned char * m_video_ram; |
25 | 27 | unsigned short m_colortable[1][4]; |
r22508 | r22509 | |
48 | 50 | required_device<cpu_device> m_maincpu; |
49 | 51 | required_device<speaker_sound_device> m_speaker; |
50 | 52 | required_device<cassette_image_device> m_cassette; |
| 53 | required_device<ram_device> m_ram; |
51 | 54 | void lviv_update_palette(UINT8 pal); |
52 | 55 | void lviv_update_memory (); |
53 | 56 | void lviv_setup_snapshot (UINT8 * data); |
trunk/src/mess/video/apple3.c
r22508 | r22509 | |
93 | 93 | const UINT8 *char_data; |
94 | 94 | pen_t fg, bg, temp; |
95 | 95 | UINT16 *dest; |
96 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
97 | | UINT32 ram_size = machine().device<ram_device>(RAM_TAG)->size(); |
| 96 | UINT8 *ram = m_ram->pointer(); |
| 97 | UINT32 ram_size = m_ram->size(); |
98 | 98 | |
99 | 99 | for (y = 0; y < 24; y++) |
100 | 100 | { |
r22508 | r22509 | |
150 | 150 | const UINT8 *char_data; |
151 | 151 | pen_t fg, bg; |
152 | 152 | UINT16 *dest; |
153 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
154 | | UINT32 ram_size = machine().device<ram_device>(RAM_TAG)->size(); |
| 153 | UINT8 *ram = m_ram->pointer(); |
| 154 | UINT32 ram_size = m_ram->size(); |
155 | 155 | |
156 | 156 | for (y = 0; y < 24; y++) |
157 | 157 | { |
r22508 | r22509 | |
201 | 201 | const UINT8 *pix_info; |
202 | 202 | UINT16 *ptr; |
203 | 203 | UINT8 b; |
204 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 204 | UINT8 *ram = m_ram->pointer(); |
205 | 205 | |
206 | 206 | for (y = 0; y < 192; y++) |
207 | 207 | { |
r22508 | r22509 | |
246 | 246 | UINT16 *ptr; |
247 | 247 | UINT8 b; |
248 | 248 | UINT16 fgcolor, bgcolor; |
249 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 249 | UINT8 *ram = m_ram->pointer(); |
250 | 250 | |
251 | 251 | for (y = 0; y < 192; y++) |
252 | 252 | { |
r22508 | r22509 | |
291 | 291 | const UINT8 *pix_info2; |
292 | 292 | UINT16 *ptr; |
293 | 293 | UINT8 b1, b2; |
294 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 294 | UINT8 *ram = m_ram->pointer(); |
295 | 295 | |
296 | 296 | for (y = 0; y < 192; y++) |
297 | 297 | { |
r22508 | r22509 | |
330 | 330 | UINT16 *pen; |
331 | 331 | PAIR pix; |
332 | 332 | int y, i; |
333 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 333 | UINT8 *ram = m_ram->pointer(); |
334 | 334 | |
335 | 335 | for (y = 0; y < 192; y++) |
336 | 336 | { |
trunk/src/mess/drivers/pc8801.c
r22508 | r22509 | |
303 | 303 | m_fdccpu(*this, "fdccpu"), |
304 | 304 | m_pic(*this, I8214_TAG), |
305 | 305 | m_rtc(*this, UPD1990A_TAG), |
306 | | m_cassette(*this, "cassette") |
| 306 | m_cassette(*this, "cassette"), |
| 307 | m_beeper(*this, "beeper") |
307 | 308 | { } |
308 | 309 | |
309 | 310 | required_device<cpu_device> m_maincpu; |
r22508 | r22509 | |
311 | 312 | optional_device<i8214_device> m_pic; |
312 | 313 | required_device<upd1990a_device> m_rtc; |
313 | 314 | required_device<cassette_image_device> m_cassette; |
| 315 | required_device<beep_device> m_beeper; |
314 | 316 | UINT8 *m_work_ram; |
315 | 317 | UINT8 *m_hi_work_ram; |
316 | 318 | UINT8 *m_ext_work_ram; |
r22508 | r22509 | |
1185 | 1187 | m_rtc->clk_w((data & 4) >> 2); |
1186 | 1188 | |
1187 | 1189 | if(((m_device_ctrl_data & 0x20) == 0x00) && ((data & 0x20) == 0x20)) |
1188 | | machine().device<beep_device>(BEEPER_TAG)->set_state(1); |
| 1190 | m_beeper->set_state(1); |
1189 | 1191 | |
1190 | 1192 | if(((m_device_ctrl_data & 0x20) == 0x20) && ((data & 0x20) == 0x00)) |
1191 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1193 | m_beeper->set_state(0); |
1192 | 1194 | |
1193 | 1195 | if((m_device_ctrl_data & 0x40) != (data & 0x40)) |
1194 | 1196 | { |
r22508 | r22509 | |
1215 | 1217 | |
1216 | 1218 | /* TODO: is SING a buzzer mask? Bastard Special relies on this ... */ |
1217 | 1219 | if(m_device_ctrl_data & 0x80) |
1218 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1220 | m_beeper->set_state(0); |
1219 | 1221 | |
1220 | 1222 | m_device_ctrl_data = data; |
1221 | 1223 | } |
r22508 | r22509 | |
2473 | 2475 | m_crtc.status = 0; |
2474 | 2476 | } |
2475 | 2477 | |
2476 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(2400); |
2477 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 2478 | m_beeper->set_frequency(2400); |
| 2479 | m_beeper->set_state(0); |
2478 | 2480 | |
2479 | 2481 | #ifdef USE_PROPER_I8214 |
2480 | 2482 | { |
r22508 | r22509 | |
2708 | 2710 | MCFG_SOUND_CONFIG(pc88_ym2608_intf) |
2709 | 2711 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
2710 | 2712 | |
2711 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2713 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2712 | 2714 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) |
2713 | 2715 | |
2714 | 2716 | MCFG_TIMER_DRIVER_ADD_PERIODIC("rtc_timer", pc8801_state, pc8801_rtc_irq, attotime::from_hz(600)) |
trunk/src/mess/drivers/ms0515.c
r22508 | r22509 | |
19 | 19 | public: |
20 | 20 | ms0515_state(const machine_config &mconfig, device_type type, const char *tag) |
21 | 21 | : driver_device(mconfig, type, tag), |
22 | | m_maincpu(*this, "maincpu") |
| 22 | m_maincpu(*this, "maincpu"), |
| 23 | m_ram(*this, RAM_TAG) |
23 | 24 | { } |
24 | 25 | |
25 | 26 | required_device<cpu_device> m_maincpu; |
| 27 | required_device<ram_device> m_ram; |
26 | 28 | |
27 | 29 | DECLARE_WRITE16_MEMBER(ms0515_bank_w); |
28 | 30 | DECLARE_WRITE8_MEMBER(ms0515_sys_w); |
r22508 | r22509 | |
83 | 85 | |
84 | 86 | WRITE16_MEMBER(ms0515_state::ms0515_bank_w) |
85 | 87 | { |
86 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 88 | UINT8 *ram = m_ram->pointer(); |
87 | 89 | membank("bank0")->set_base(ram + 0000000 + BIT(data,0) * 0160000); |
88 | 90 | membank("bank1")->set_base(ram + 0020000 + BIT(data,1) * 0160000); |
89 | 91 | membank("bank2")->set_base(ram + 0040000 + BIT(data,2) * 0160000); |
r22508 | r22509 | |
118 | 120 | |
119 | 121 | void ms0515_state::machine_reset() |
120 | 122 | { |
121 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 123 | UINT8 *ram = m_ram->pointer(); |
122 | 124 | ms0515_bank_w(machine().driver_data()->generic_space(),0,0); |
123 | 125 | |
124 | 126 | m_video_ram = ram + 0000000 + 0340000; |
trunk/src/mess/drivers/pc100.c
r22508 | r22509 | |
67 | 67 | pc100_state(const machine_config &mconfig, device_type type, const char *tag) |
68 | 68 | : driver_device(mconfig, type, tag), |
69 | 69 | m_rtc(*this, "rtc"), |
70 | | m_palram(*this, "palram") |
71 | | , |
72 | | m_maincpu(*this, "maincpu") { } |
| 70 | m_palram(*this, "palram"), |
| 71 | m_maincpu(*this, "maincpu"), |
| 72 | m_beeper(*this, "beeper") { } |
73 | 73 | |
74 | 74 | required_device<msm58321_device> m_rtc; |
75 | 75 | required_shared_ptr<UINT16> m_palram; |
r22508 | r22509 | |
118 | 118 | TIMER_DEVICE_CALLBACK_MEMBER(pc100_10hz_irq); |
119 | 119 | IRQ_CALLBACK_MEMBER(pc100_irq_callback); |
120 | 120 | required_device<cpu_device> m_maincpu; |
| 121 | required_device<beep_device> m_beeper; |
121 | 122 | }; |
122 | 123 | |
123 | 124 | void pc100_state::video_start() |
r22508 | r22509 | |
219 | 220 | if(offset == 0) |
220 | 221 | { |
221 | 222 | m_timer_mode = (data & 0x18) >> 3; |
222 | | machine().device<beep_device>(BEEPER_TAG)->set_state(((data & 0x40) >> 6) ^ 1); |
| 223 | m_beeper->set_state(((data & 0x40) >> 6) ^ 1); |
223 | 224 | printf("%02x\n",data & 0xc0); |
224 | 225 | } |
225 | 226 | } |
r22508 | r22509 | |
429 | 430 | |
430 | 431 | void pc100_state::machine_reset() |
431 | 432 | { |
432 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(2400); |
433 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 433 | m_beeper->set_frequency(2400); |
| 434 | m_beeper->set_state(0); |
434 | 435 | } |
435 | 436 | |
436 | 437 | INTERRUPT_GEN_MEMBER(pc100_state::pc100_vblank_irq) |
r22508 | r22509 | |
517 | 518 | |
518 | 519 | MCFG_SPEAKER_STANDARD_MONO("mono") |
519 | 520 | |
520 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 521 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
521 | 522 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
522 | 523 | MACHINE_CONFIG_END |
523 | 524 | |
trunk/src/mess/drivers/mmodular.c
r22508 | r22509 | |
129 | 129 | public: |
130 | 130 | polgar_state(const machine_config &mconfig, device_type type, const char *tag) |
131 | 131 | : mboard_state(mconfig, type, tag), |
132 | | m_lcdc(*this, "hd44780") |
| 132 | m_lcdc(*this, "hd44780"), |
| 133 | m_beeper(*this, "beeper") |
133 | 134 | { } |
134 | 135 | |
135 | 136 | optional_device<hd44780_device> m_lcdc; |
| 137 | optional_device<beep_device> m_beeper; |
136 | 138 | |
137 | 139 | UINT8 led_status; |
138 | 140 | UINT8 lcd_char; |
r22508 | r22509 | |
244 | 246 | } |
245 | 247 | |
246 | 248 | if (BIT(data,2) || BIT(data,3)) |
247 | | machine().device<beep_device>("beep")->set_state(1); |
| 249 | m_beeper->set_state(1); |
248 | 250 | else |
249 | | machine().device<beep_device>("beep")->set_state(0); |
| 251 | m_beeper->set_state(0); |
250 | 252 | |
251 | 253 | if (BIT(data,7) && BIT(data, 4)) { |
252 | 254 | for (i = 0;i < 8;i++) |
r22508 | r22509 | |
412 | 414 | WRITE8_MEMBER(polgar_state::megaiv_write_LED) |
413 | 415 | { |
414 | 416 | if (BIT(data,7)) |
415 | | machine().device<beep_device>("beep")->set_state(1); |
| 417 | m_beeper->set_state(1); |
416 | 418 | else |
417 | | machine().device<beep_device>("beep")->set_state(0); |
| 419 | m_beeper->set_state(0); |
418 | 420 | output_set_led_value(102,BIT(data,1)?1:0); |
419 | 421 | output_set_led_value(107,BIT(data,6)?1:0); |
420 | 422 | |
r22508 | r22509 | |
475 | 477 | } |
476 | 478 | |
477 | 479 | if (BIT(data,7)) |
478 | | machine().device<beep_device>("beep")->set_state(1); |
| 480 | m_beeper->set_state(1); |
479 | 481 | else |
480 | | machine().device<beep_device>("beep")->set_state(0); |
| 482 | m_beeper->set_state(0); |
481 | 483 | if (BIT(data,1)) |
482 | | machine().device<beep_device>("beep")->set_state(1); |
| 484 | m_beeper->set_state(1); |
483 | 485 | else |
484 | | machine().device<beep_device>("beep")->set_state(0); |
| 486 | m_beeper->set_state(0); |
485 | 487 | // logerror("LEDs FUNC = %02x found = %d\n",data,found); |
486 | 488 | if (!found) { |
487 | 489 | logerror("unknown LED mask %d\n",data); |
r22508 | r22509 | |
724 | 726 | WRITE8_MEMBER(polgar_state::beep_academy) |
725 | 727 | { |
726 | 728 | if (!BIT(data,7)) |
727 | | machine().device<beep_device>("beep")->set_state(1); |
| 729 | m_beeper->set_state(1); |
728 | 730 | else |
729 | | machine().device<beep_device>("beep")->set_state(0); |
| 731 | m_beeper->set_state(0); |
730 | 732 | } |
731 | 733 | |
732 | 734 | WRITE8_MEMBER(polgar_state::megaiv_IO) |
r22508 | r22509 | |
878 | 880 | void polgar_state::write_IOenable(unsigned char data,address_space &space) |
879 | 881 | { |
880 | 882 | hd44780_device * hd44780 = space.machine().device<hd44780_device>("hd44780"); |
881 | | beep_device *speaker = machine().device<beep_device>("beep"); |
882 | 883 | |
883 | 884 | if (BIT(data,5) && BIT(data,4)) { |
884 | 885 | if (BIT(data,1)) { |
r22508 | r22509 | |
904 | 905 | logerror("Write to IOENBL data: %08x\n",data); |
905 | 906 | |
906 | 907 | if (BIT(data,2) || BIT(data,3)) |
907 | | speaker->set_state(1); |
| 908 | m_beeper->set_state(1); |
908 | 909 | else |
909 | | speaker->set_state(0); |
| 910 | m_beeper->set_state(0); |
910 | 911 | } |
911 | 912 | |
912 | 913 | } |
r22508 | r22509 | |
1532 | 1533 | |
1533 | 1534 | /* sound hardware */ |
1534 | 1535 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1535 | | MCFG_SOUND_ADD("beep", BEEP, 0) |
| 1536 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
1536 | 1537 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1537 | 1538 | |
1538 | 1539 | MACHINE_CONFIG_END |
trunk/src/mess/drivers/pc9801.c
r22508 | r22509 | |
365 | 365 | m_hgdc2(*this, "upd7220_btm"), |
366 | 366 | m_sasibus(*this, SASIBUS_TAG ":host"), |
367 | 367 | m_video_ram_1(*this, "video_ram_1"), |
368 | | m_video_ram_2(*this, "video_ram_2"){ } |
| 368 | m_video_ram_2(*this, "video_ram_2"), |
| 369 | m_beeper(*this, "beeper"), |
| 370 | m_ram(*this, RAM_TAG) { } |
369 | 371 | |
370 | 372 | required_device<cpu_device> m_maincpu; |
371 | 373 | required_device<am9517a_device> m_dmac; |
r22508 | r22509 | |
379 | 381 | optional_device<scsicb_device> m_sasibus; |
380 | 382 | required_shared_ptr<UINT8> m_video_ram_1; |
381 | 383 | required_shared_ptr<UINT8> m_video_ram_2; |
| 384 | required_device<beep_device> m_beeper; |
| 385 | optional_device<ram_device> m_ram; |
382 | 386 | |
383 | 387 | virtual void video_start(); |
384 | 388 | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
r22508 | r22509 | |
3109 | 3113 | |
3110 | 3114 | WRITE8_MEMBER(pc9801_state::ppi_sys_portc_w) |
3111 | 3115 | { |
3112 | | machine().device<beep_device>(BEEPER_TAG)->set_state(!(data & 0x08)); |
| 3116 | m_beeper->set_state(!(data & 0x08)); |
3113 | 3117 | } |
3114 | 3118 | |
3115 | 3119 | static I8255A_INTERFACE( ppi_system_intf ) |
r22508 | r22509 | |
3388 | 3392 | state_save_register_global_pointer(machine(), m_work_ram, 0xa0000); |
3389 | 3393 | state_save_register_global_pointer(machine(), m_ext_work_ram, 0x700000); |
3390 | 3394 | |
3391 | | m_ram_size = machine().device<ram_device>(RAM_TAG)->size() - 0xa0000; |
| 3395 | m_ram_size = m_ram->size() - 0xa0000; |
3392 | 3396 | |
3393 | 3397 | upd765a_device *fdc; |
3394 | 3398 | fdc = machine().device<upd765a_device>(":upd765_2hd"); |
r22508 | r22509 | |
3427 | 3431 | m_tvram[(0x3fe0)+i*2] = default_memsw_data[i]; |
3428 | 3432 | } |
3429 | 3433 | |
3430 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(2400); |
3431 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 3434 | m_beeper->set_frequency(2400); |
| 3435 | m_beeper->set_state(0); |
3432 | 3436 | |
3433 | 3437 | m_nmi_ff = 0; |
3434 | 3438 | m_mouse.control = 0xff; |
r22508 | r22509 | |
3612 | 3616 | |
3613 | 3617 | MCFG_SPEAKER_STANDARD_MONO("mono") |
3614 | 3618 | |
3615 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 3619 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
3616 | 3620 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
3617 | 3621 | MACHINE_CONFIG_END |
3618 | 3622 | |
r22508 | r22509 | |
3677 | 3681 | // MCFG_SOUND_CONFIG(pc98_ym2608_intf) |
3678 | 3682 | // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
3679 | 3683 | |
3680 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 3684 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
3681 | 3685 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
3682 | 3686 | MACHINE_CONFIG_END |
3683 | 3687 | |
r22508 | r22509 | |
3743 | 3747 | // MCFG_SOUND_CONFIG(pc98_ym2608_intf) |
3744 | 3748 | // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
3745 | 3749 | |
3746 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 3750 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
3747 | 3751 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
3748 | 3752 | MACHINE_CONFIG_END |
3749 | 3753 | |
trunk/src/mess/drivers/fm7.c
r22508 | r22509 | |
229 | 229 | |
230 | 230 | TIMER_CALLBACK_MEMBER(fm7_state::fm7_beeper_off) |
231 | 231 | { |
232 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 232 | m_beeper->set_state(0); |
233 | 233 | logerror("timed beeper off\n"); |
234 | 234 | } |
235 | 235 | |
r22508 | r22509 | |
239 | 239 | |
240 | 240 | if(!m_speaker_active) // speaker not active, disable all beeper sound |
241 | 241 | { |
242 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 242 | m_beeper->set_state(0); |
243 | 243 | return; |
244 | 244 | } |
245 | 245 | |
246 | 246 | if(data & 0x80) |
247 | 247 | { |
248 | 248 | if(m_speaker_active) |
249 | | machine().device<beep_device>(BEEPER_TAG)->set_state(1); |
| 249 | m_beeper->set_state(1); |
250 | 250 | } |
251 | 251 | else |
252 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 252 | m_beeper->set_state(0); |
253 | 253 | |
254 | 254 | if(data & 0x40) |
255 | 255 | { |
256 | 256 | if(m_speaker_active) |
257 | 257 | { |
258 | | machine().device<beep_device>(BEEPER_TAG)->set_state(1); |
| 258 | m_beeper->set_state(1); |
259 | 259 | logerror("timed beeper on\n"); |
260 | 260 | machine().scheduler().timer_set(attotime::from_msec(205), timer_expired_delegate(FUNC(fm7_state::fm7_beeper_off),this)); |
261 | 261 | } |
r22508 | r22509 | |
272 | 272 | { |
273 | 273 | if(m_speaker_active) |
274 | 274 | { |
275 | | machine().device<beep_device>(BEEPER_TAG)->set_state(1); |
| 275 | m_beeper->set_state(1); |
276 | 276 | logerror("timed beeper on\n"); |
277 | 277 | machine().scheduler().timer_set(attotime::from_msec(205), timer_expired_delegate(FUNC(fm7_state::fm7_beeper_off),this)); |
278 | 278 | } |
r22508 | r22509 | |
1836 | 1836 | memset(m_shared_ram,0xff,0x80); |
1837 | 1837 | m_type = SYS_FM7; |
1838 | 1838 | |
1839 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(1200); |
1840 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1839 | m_beeper->set_frequency(1200); |
| 1840 | m_beeper->set_state(0); |
1841 | 1841 | } |
1842 | 1842 | |
1843 | 1843 | MACHINE_START_MEMBER(fm7_state,fm77av) |
r22508 | r22509 | |
1857 | 1857 | membank("bank21")->set_base(RAM+0x800); |
1858 | 1858 | |
1859 | 1859 | m_type = SYS_FM77AV; |
1860 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(1200); |
1861 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1860 | m_beeper->set_frequency(1200); |
| 1861 | m_beeper->set_state(0); |
1862 | 1862 | } |
1863 | 1863 | |
1864 | 1864 | MACHINE_START_MEMBER(fm7_state,fm11) |
r22508 | r22509 | |
1868 | 1868 | |
1869 | 1869 | memset(m_shared_ram,0xff,0x80); |
1870 | 1870 | m_type = SYS_FM11; |
1871 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(1200); |
1872 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1871 | m_beeper->set_frequency(1200); |
| 1872 | m_beeper->set_state(0); |
1873 | 1873 | // last part of Initiate ROM is visible at the end of RAM too (interrupt vectors) |
1874 | 1874 | memcpy(RAM+0x3fff0,ROM+0x0ff0,16); |
1875 | 1875 | } |
r22508 | r22509 | |
1877 | 1877 | MACHINE_START_MEMBER(fm7_state,fm16) |
1878 | 1878 | { |
1879 | 1879 | m_type = SYS_FM16; |
1880 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(1200); |
1881 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1880 | m_beeper->set_frequency(1200); |
| 1881 | m_beeper->set_state(0); |
1882 | 1882 | } |
1883 | 1883 | |
1884 | 1884 | void fm7_state::machine_reset() |
r22508 | r22509 | |
2022 | 2022 | MCFG_SOUND_ADD("psg", AY8910, XTAL_4_9152MHz / 4) |
2023 | 2023 | MCFG_SOUND_CONFIG(fm7_psg_intf) |
2024 | 2024 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 1.00) |
2025 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2025 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2026 | 2026 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.50) |
2027 | 2027 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
2028 | 2028 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.25) |
r22508 | r22509 | |
2064 | 2064 | MCFG_QUANTUM_PERFECT_CPU("sub") |
2065 | 2065 | |
2066 | 2066 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2067 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2067 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2068 | 2068 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
2069 | 2069 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
2070 | 2070 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25) |
r22508 | r22509 | |
2107 | 2107 | MCFG_SOUND_ADD("ym", YM2203, XTAL_4_9152MHz / 4) |
2108 | 2108 | MCFG_SOUND_CONFIG(fm7_ym_intf) |
2109 | 2109 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0) |
2110 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2110 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2111 | 2111 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
2112 | 2112 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
2113 | 2113 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25) |
r22508 | r22509 | |
2153 | 2153 | MCFG_CPU_IO_MAP(fm11_x86_io) |
2154 | 2154 | |
2155 | 2155 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2156 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2156 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2157 | 2157 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
2158 | 2158 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
2159 | 2159 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25) |
r22508 | r22509 | |
2194 | 2194 | MCFG_QUANTUM_PERFECT_CPU("sub") |
2195 | 2195 | |
2196 | 2196 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2197 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2197 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2198 | 2198 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
2199 | 2199 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
2200 | 2200 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25) |
trunk/src/mess/drivers/ex800.c
r22508 | r22509 | |
137 | 137 | public: |
138 | 138 | ex800_state(const machine_config &mconfig, device_type type, const char *tag) |
139 | 139 | : driver_device(mconfig, type, tag) , |
140 | | m_maincpu(*this, "maincpu") { } |
| 140 | m_maincpu(*this, "maincpu"), |
| 141 | m_beeper(*this, "beeper") { } |
141 | 142 | |
142 | 143 | int m_irq_state; |
143 | 144 | DECLARE_READ8_MEMBER(ex800_porta_r); |
r22508 | r22509 | |
157 | 158 | virtual void machine_start(); |
158 | 159 | DECLARE_INPUT_CHANGED_MEMBER(online_switch); |
159 | 160 | required_device<cpu_device> m_maincpu; |
| 161 | required_device<beep_device> m_beeper; |
160 | 162 | }; |
161 | 163 | |
162 | 164 | |
r22508 | r22509 | |
208 | 210 | void ex800_state::machine_start() |
209 | 211 | { |
210 | 212 | m_irq_state = ASSERT_LINE; |
211 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
212 | 213 | /* Setup beep */ |
213 | | speaker->set_state(0); |
214 | | speaker->set_frequency(4000); /* measured at 4000 Hz */ |
| 214 | m_beeper->set_state(0); |
| 215 | m_beeper->set_frequency(4000); /* measured at 4000 Hz */ |
215 | 216 | } |
216 | 217 | |
217 | 218 | |
r22508 | r22509 | |
267 | 268 | |
268 | 269 | WRITE8_MEMBER(ex800_state::ex800_portc_w) |
269 | 270 | { |
270 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
271 | 271 | if (data & 0x80) |
272 | | speaker->set_state(0); |
| 272 | m_beeper->set_state(0); |
273 | 273 | else |
274 | | speaker->set_state(1); |
| 274 | m_beeper->set_state(1); |
275 | 275 | |
276 | 276 | logerror("PC W %x @%x\n", data, space.device().safe_pc()); |
277 | 277 | } |
r22508 | r22509 | |
458 | 458 | |
459 | 459 | /* audio hardware */ |
460 | 460 | MCFG_SPEAKER_STANDARD_MONO("mono") |
461 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 461 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
462 | 462 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
463 | 463 | MACHINE_CONFIG_END |
464 | 464 | |
trunk/src/mess/drivers/vt220.c
r22508 | r22509 | |
16 | 16 | public: |
17 | 17 | vt220_state(const machine_config &mconfig, device_type type, const char *tag) |
18 | 18 | : driver_device(mconfig, type, tag) , |
19 | | m_maincpu(*this, "maincpu") { } |
| 19 | m_maincpu(*this, "maincpu"), |
| 20 | m_ram(*this, RAM_TAG) { } |
20 | 21 | |
21 | 22 | virtual void machine_reset(); |
22 | 23 | virtual void video_start(); |
23 | 24 | UINT32 screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
24 | 25 | required_device<cpu_device> m_maincpu; |
| 26 | required_device<ram_device> m_ram; |
25 | 27 | }; |
26 | 28 | |
27 | 29 | |
r22508 | r22509 | |
38 | 40 | |
39 | 41 | void vt220_state::machine_reset() |
40 | 42 | { |
41 | | memset(machine().device<ram_device>(RAM_TAG)->pointer(),0,16*1024); |
| 43 | memset(m_ram->pointer(),0,16*1024); |
42 | 44 | } |
43 | 45 | |
44 | 46 | void vt220_state::video_start() |
trunk/src/mess/drivers/smc777.c
r22508 | r22509 | |
52 | 52 | m_maincpu(*this, "maincpu"), |
53 | 53 | m_crtc(*this, "crtc"), |
54 | 54 | m_fdc(*this, "fdc"), |
55 | | m_sn(*this, "sn1") |
| 55 | m_sn(*this, "sn1"), |
| 56 | m_beeper(*this, "beeper") |
56 | 57 | { } |
57 | 58 | |
58 | 59 | required_device<cpu_device> m_maincpu; |
59 | 60 | required_device<mc6845_device> m_crtc; |
60 | 61 | required_device<mb8876_device> m_fdc; |
61 | 62 | optional_device<sn76489a_device> m_sn; |
| 63 | required_device<beep_device> m_beeper; |
62 | 64 | |
63 | 65 | UINT8 *m_ipl_rom; |
64 | 66 | UINT8 *m_work_ram; |
r22508 | r22509 | |
528 | 530 | m_raminh_prefetch = (UINT8)(space.device().state().state_int(Z80_R)) & 0x7f; |
529 | 531 | break; |
530 | 532 | case 0x02: printf("Interlace %s\n",data & 0x10 ? "on" : "off"); break; |
531 | | case 0x05: machine().device<beep_device>(BEEPER_TAG)->set_state(data & 0x10); break; |
| 533 | case 0x05: m_beeper->set_state(data & 0x10); break; |
532 | 534 | default: printf("System FF W %02x\n",data); break; |
533 | 535 | } |
534 | 536 | } |
r22508 | r22509 | |
990 | 992 | m_raminh_prefetch = 0xff; |
991 | 993 | m_pal_mode = 0x10; |
992 | 994 | |
993 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(300); //TODO: correct frequency |
994 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 995 | m_beeper->set_frequency(300); //TODO: correct frequency |
| 996 | m_beeper->set_state(0); |
995 | 997 | } |
996 | 998 | |
997 | 999 | |
r22508 | r22509 | |
1114 | 1116 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
1115 | 1117 | MCFG_SOUND_CONFIG(psg_intf) |
1116 | 1118 | |
1117 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 1119 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
1118 | 1120 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
1119 | 1121 | |
1120 | 1122 | MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", smc777_state, keyboard_callback, attotime::from_hz(240/32)) |
trunk/src/mess/drivers/spc1000.c
r22508 | r22509 | |
22 | 22 | spc1000_state(const machine_config &mconfig, device_type type, const char *tag) |
23 | 23 | : driver_device(mconfig, type, tag), |
24 | 24 | m_vdg(*this, "mc6847") , |
25 | | m_maincpu(*this, "maincpu") {} |
| 25 | m_maincpu(*this, "maincpu"), |
| 26 | m_ram(*this, RAM_TAG) {} |
26 | 27 | |
27 | 28 | required_device<mc6847_base_device> m_vdg; |
28 | 29 | UINT8 m_IPLK; |
r22508 | r22509 | |
44 | 45 | DECLARE_READ8_MEMBER(spc1000_gmode_r); |
45 | 46 | DECLARE_READ8_MEMBER(spc1000_mc6847_videoram_r); |
46 | 47 | required_device<cpu_device> m_maincpu; |
| 48 | required_device<ram_device> m_ram; |
47 | 49 | }; |
48 | 50 | |
49 | 51 | |
r22508 | r22509 | |
62 | 64 | membank("bank1")->set_base(mem); |
63 | 65 | membank("bank3")->set_base(mem); |
64 | 66 | } else { |
65 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 67 | UINT8 *ram = m_ram->pointer(); |
66 | 68 | membank("bank1")->set_base(ram); |
67 | 69 | membank("bank3")->set_base(ram + 0x8000); |
68 | 70 | } |
r22508 | r22509 | |
76 | 78 | membank("bank1")->set_base(mem); |
77 | 79 | membank("bank3")->set_base(mem); |
78 | 80 | } else { |
79 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 81 | UINT8 *ram = m_ram->pointer(); |
80 | 82 | membank("bank1")->set_base(ram); |
81 | 83 | membank("bank3")->set_base(ram + 0x8000); |
82 | 84 | } |
r22508 | r22509 | |
229 | 231 | { |
230 | 232 | address_space &space = m_maincpu->space(AS_PROGRAM); |
231 | 233 | UINT8 *mem = memregion("maincpu")->base(); |
232 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 234 | UINT8 *ram = m_ram->pointer(); |
233 | 235 | |
234 | 236 | space.install_read_bank(0x0000, 0x7fff, "bank1"); |
235 | 237 | space.install_read_bank(0x8000, 0xffff, "bank3"); |
trunk/src/mess/drivers/mz2500.c
r22508 | r22509 | |
65 | 65 | mz2500_state(const machine_config &mconfig, device_type type, const char *tag) |
66 | 66 | : driver_device(mconfig, type, tag), |
67 | 67 | m_maincpu(*this, "maincpu"), |
68 | | m_rtc(*this, RP5C15_TAG) |
| 68 | m_rtc(*this, RP5C15_TAG), |
| 69 | m_beeper(*this, "beeper") |
69 | 70 | { } |
70 | 71 | |
71 | 72 | required_device<cpu_device> m_maincpu; |
72 | 73 | required_device<rp5c15_device> m_rtc; |
| 74 | required_device<beep_device> m_beeper; |
73 | 75 | |
74 | 76 | UINT8 *m_main_ram; |
75 | 77 | UINT8 *m_ipl_rom; |
r22508 | r22509 | |
1806 | 1808 | |
1807 | 1809 | m_cg_clear_flag = 0; |
1808 | 1810 | |
1809 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(4096); |
1810 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 1811 | m_beeper->set_frequency(4096); |
| 1812 | m_beeper->set_state(0); |
1811 | 1813 | |
1812 | 1814 | // m_monitor_type = ioport("DSW1")->read() & 0x40 ? 1 : 0; |
1813 | 1815 | } |
r22508 | r22509 | |
1921 | 1923 | |
1922 | 1924 | m_old_portc = data; |
1923 | 1925 | |
1924 | | machine().device<beep_device>(BEEPER_TAG)->set_state(data & 0x04); |
| 1926 | m_beeper->set_state(data & 0x04); |
1925 | 1927 | |
1926 | 1928 | m_screen_enable = data & 1; |
1927 | 1929 | |
r22508 | r22509 | |
2157 | 2159 | MCFG_SOUND_ROUTE(2, "mono", 0.50) |
2158 | 2160 | MCFG_SOUND_ROUTE(3, "mono", 0.50) |
2159 | 2161 | |
2160 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 2162 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
2161 | 2163 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
2162 | 2164 | MACHINE_CONFIG_END |
2163 | 2165 | |
trunk/src/mess/drivers/multi8.c
r22508 | r22509 | |
28 | 28 | m_maincpu(*this, "maincpu"), |
29 | 29 | m_ppi(*this, "ppi8255_0"), |
30 | 30 | m_crtc(*this, "crtc"), |
31 | | m_beep(*this, BEEPER_TAG) |
| 31 | m_beeper(*this, "beeper") |
32 | 32 | { } |
33 | 33 | |
34 | 34 | required_device<cpu_device> m_maincpu; |
35 | 35 | required_device<i8255_device> m_ppi; |
36 | 36 | required_device<mc6845_device> m_crtc; |
37 | | required_device<beep_device> m_beep; |
| 37 | required_device<beep_device> m_beeper; |
38 | 38 | DECLARE_WRITE8_MEMBER(multi8_6845_w); |
39 | 39 | DECLARE_READ8_MEMBER(key_input_r); |
40 | 40 | DECLARE_READ8_MEMBER(key_status_r); |
r22508 | r22509 | |
629 | 629 | |
630 | 630 | WRITE8_MEMBER( multi8_state::ym2203_porta_w ) |
631 | 631 | { |
632 | | m_beep->set_state((data & 0x08)); |
| 632 | m_beeper->set_state((data & 0x08)); |
633 | 633 | } |
634 | 634 | |
635 | 635 | static const ym2203_interface ym2203_config = |
r22508 | r22509 | |
655 | 655 | |
656 | 656 | void multi8_state::machine_reset() |
657 | 657 | { |
658 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(1200); //guesswork |
659 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 658 | m_beeper->set_frequency(1200); //guesswork |
| 659 | m_beeper->set_state(0); |
660 | 660 | m_mcu_init = 0; |
661 | 661 | } |
662 | 662 | |
r22508 | r22509 | |
682 | 682 | MCFG_SOUND_ADD("aysnd", AY8912, 1500000) //unknown clock / divider |
683 | 683 | MCFG_SOUND_CONFIG(ym2203_config) |
684 | 684 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
685 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 685 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
686 | 686 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
687 | 687 | |
688 | 688 | /* Devices */ |
trunk/src/mess/drivers/z9001.c
r22508 | r22509 | |
45 | 45 | : driver_device(mconfig, type, tag), |
46 | 46 | m_maincpu(*this, "maincpu"), |
47 | 47 | m_framecnt(0), |
48 | | m_beeper(*this, BEEPER_TAG), |
| 48 | m_beeper(*this, "beeper"), |
49 | 49 | m_cass(*this, "cassette"), |
50 | 50 | m_p_colorram(*this, "colorram"), |
51 | 51 | m_p_videoram(*this, "videoram"){ } |
r22508 | r22509 | |
252 | 252 | MCFG_SPEAKER_STANDARD_MONO("mono") |
253 | 253 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
254 | 254 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
255 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 255 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
256 | 256 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
257 | 257 | |
258 | 258 | /* Devices */ |
trunk/src/mess/drivers/vtech1.c
r22508 | r22509 | |
161 | 161 | m_speaker(*this, "speaker"), |
162 | 162 | m_cassette(*this, "cassette"), |
163 | 163 | m_videoram(*this, "videoram"), |
164 | | m_maincpu(*this, "maincpu") { } |
| 164 | m_maincpu(*this, "maincpu"), |
| 165 | m_ram(*this, RAM_TAG) { } |
165 | 166 | |
166 | 167 | /* devices */ |
167 | 168 | required_device<mc6847_base_device> m_mc6847; |
168 | 169 | optional_device<speaker_sound_device> m_speaker; |
169 | 170 | optional_device<cassette_image_device> m_cassette; |
170 | 171 | |
171 | | UINT8 *m_ram; |
| 172 | UINT8 *m_ram_pointer; |
172 | 173 | UINT32 m_ram_size; |
173 | 174 | required_shared_ptr<UINT8> m_videoram; |
174 | 175 | |
r22508 | r22509 | |
204 | 205 | void vtech1_get_track(); |
205 | 206 | void vtech1_put_track(); |
206 | 207 | required_device<cpu_device> m_maincpu; |
| 208 | required_device<ram_device> m_ram; |
207 | 209 | }; |
208 | 210 | |
209 | 211 | |
r22508 | r22509 | |
239 | 241 | } |
240 | 242 | |
241 | 243 | /* write it to ram */ |
242 | | image.fread( &m_ram[start - 0x7800], size); |
| 244 | image.fread( &m_ram_pointer[start - 0x7800], size); |
243 | 245 | |
244 | 246 | /* patch variables depending on snapshot type */ |
245 | 247 | switch (header[21]) |
r22508 | r22509 | |
629 | 631 | int id; |
630 | 632 | |
631 | 633 | /* ram */ |
632 | | m_ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
633 | | m_ram_size = machine().device<ram_device>(RAM_TAG)->size(); |
| 634 | m_ram_pointer = m_ram->pointer(); |
| 635 | m_ram_size = m_ram->size(); |
634 | 636 | |
635 | 637 | /* setup memory banking */ |
636 | | membank("bank1")->set_base(m_ram); |
| 638 | membank("bank1")->set_base(m_ram_pointer); |
637 | 639 | |
638 | 640 | /* 16k memory expansion? */ |
639 | 641 | if (m_ram_size == 18*1024 || m_ram_size == 22*1024 || m_ram_size == 32*1024) |
640 | 642 | { |
641 | 643 | offs_t base = 0x7800 + (m_ram_size - 0x4000); |
642 | 644 | prg.install_readwrite_bank(base, base + 0x3fff, "bank2"); |
643 | | membank("bank2")->set_base(m_ram + base - 0x7800); |
| 645 | membank("bank2")->set_base(m_ram_pointer + base - 0x7800); |
644 | 646 | } |
645 | 647 | |
646 | 648 | /* 64k expansion? */ |
r22508 | r22509 | |
648 | 650 | { |
649 | 651 | /* install fixed first bank */ |
650 | 652 | prg.install_readwrite_bank(0x8000, 0xbfff, "bank2"); |
651 | | membank("bank2")->set_base(m_ram + 0x800); |
| 653 | membank("bank2")->set_base(m_ram_pointer + 0x800); |
652 | 654 | |
653 | 655 | /* install the others, dynamically banked in */ |
654 | 656 | prg.install_readwrite_bank(0xc000, 0xffff, "bank3"); |
655 | | membank("bank3")->configure_entries(0, (m_ram_size - 0x4800) / 0x4000, m_ram + 0x4800, 0x4000); |
| 657 | membank("bank3")->configure_entries(0, (m_ram_size - 0x4800) / 0x4000, m_ram_pointer + 0x4800, 0x4000); |
656 | 658 | membank("bank3")->set_entry(0); |
657 | 659 | } |
658 | 660 | |
trunk/src/mess/drivers/vt320.c
r22508 | r22509 | |
16 | 16 | public: |
17 | 17 | vt320_state(const machine_config &mconfig, device_type type, const char *tag) |
18 | 18 | : driver_device(mconfig, type, tag) , |
19 | | m_maincpu(*this, "maincpu") { } |
| 19 | m_maincpu(*this, "maincpu"), |
| 20 | m_ram(*this, RAM_TAG) { } |
20 | 21 | |
21 | 22 | virtual void machine_reset(); |
22 | 23 | virtual void video_start(); |
23 | 24 | UINT32 screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
24 | 25 | required_device<cpu_device> m_maincpu; |
| 26 | required_device<ram_device> m_ram; |
25 | 27 | }; |
26 | 28 | |
27 | 29 | /* |
r22508 | r22509 | |
64 | 66 | |
65 | 67 | void vt320_state::machine_reset() |
66 | 68 | { |
67 | | memset(machine().device<ram_device>(RAM_TAG)->pointer(),0,16*1024); |
| 69 | memset(m_ram->pointer(),0,16*1024); |
68 | 70 | } |
69 | 71 | |
70 | 72 | void vt320_state::video_start() |
trunk/src/mess/drivers/a5105.c
r22508 | r22509 | |
40 | 40 | m_maincpu(*this, "maincpu"), |
41 | 41 | m_hgdc(*this, "upd7220"), |
42 | 42 | m_cass(*this, "cassette"), |
43 | | m_beep(*this, BEEPER_TAG), |
| 43 | m_beep(*this, "beeper"), |
44 | 44 | m_fdc(*this, "upd765a"), |
45 | 45 | m_floppy0(*this, "upd765a:0"), |
46 | 46 | m_floppy1(*this, "upd765a:1"), |
47 | 47 | m_floppy2(*this, "upd765a:2"), |
48 | 48 | m_floppy3(*this, "upd765a:3"), |
49 | | m_video_ram(*this, "video_ram") |
| 49 | m_video_ram(*this, "video_ram"), |
| 50 | m_ram(*this, RAM_TAG) |
50 | 51 | { } |
51 | 52 | |
52 | 53 | required_device<cpu_device> m_maincpu; |
r22508 | r22509 | |
80 | 81 | virtual void video_start(); |
81 | 82 | virtual void palette_init(); |
82 | 83 | DECLARE_FLOPPY_FORMATS( floppy_formats ); |
| 84 | required_device<ram_device> m_ram; |
83 | 85 | }; |
84 | 86 | |
85 | 87 | /* TODO */ |
r22508 | r22509 | |
484 | 486 | a5105_ab_w(space, 0, 9); // turn motor off |
485 | 487 | m_beep->set_frequency(500); |
486 | 488 | |
487 | | m_ram_base = (UINT8*)machine().device<ram_device>(RAM_TAG)->pointer(); |
| 489 | m_ram_base = (UINT8*)m_ram->pointer(); |
488 | 490 | m_rom_base = (UINT8*)memregion("maincpu")->base(); |
489 | 491 | |
490 | 492 | membank("bank1")->set_base(m_rom_base); |
r22508 | r22509 | |
601 | 603 | MCFG_SPEAKER_STANDARD_MONO("mono") |
602 | 604 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
603 | 605 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
604 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 606 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
605 | 607 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
606 | 608 | |
607 | 609 | /* Devices */ |
trunk/src/mess/drivers/pce220.c
r22508 | r22509 | |
42 | 42 | : driver_device(mconfig, type, tag), |
43 | 43 | m_maincpu(*this, "maincpu"), |
44 | 44 | m_ram(*this, RAM_TAG), |
45 | | m_beep(*this, BEEPER_TAG), |
| 45 | m_beep(*this, "beeper"), |
46 | 46 | m_serial(*this, PCE220SERIAL_TAG) |
47 | 47 | { } |
48 | 48 | |
r22508 | r22509 | |
939 | 939 | |
940 | 940 | /* sound hardware */ |
941 | 941 | MCFG_SPEAKER_STANDARD_MONO("mono") |
942 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 942 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
943 | 943 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
944 | 944 | |
945 | 945 | MCFG_TIMER_DRIVER_ADD_PERIODIC("pce220_timer", pce220_state, pce220_timer_callback, attotime::from_msec(468)) |
r22508 | r22509 | |
974 | 974 | |
975 | 975 | /* sound hardware */ |
976 | 976 | MCFG_SPEAKER_STANDARD_MONO("mono") |
977 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 977 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
978 | 978 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
979 | 979 | |
980 | 980 | MCFG_TIMER_DRIVER_ADD_PERIODIC("pce220_timer", pce220_state, pce220_timer_callback, attotime::from_msec(468)) |
trunk/src/mess/drivers/mz3500.c
r22508 | r22509 | |
46 | 46 | m_hgdc1(*this, "upd7220_chr"), |
47 | 47 | m_hgdc2(*this, "upd7220_gfx"), |
48 | 48 | m_fdc(*this, "upd765a"), |
49 | | m_video_ram(*this, "video_ram") |
| 49 | m_video_ram(*this, "video_ram"), |
| 50 | m_beeper(*this, "beeper") |
50 | 51 | { } |
51 | 52 | |
52 | 53 | // devices |
r22508 | r22509 | |
56 | 57 | required_device<upd7220_device> m_hgdc2; |
57 | 58 | required_device<upd765a_device> m_fdc; |
58 | 59 | required_shared_ptr<UINT8> m_video_ram; |
| 60 | required_device<beep_device> m_beeper; |
| 61 | |
59 | 62 | UINT8 *m_ipl_rom; |
60 | 63 | UINT8 *m_basic_rom; |
61 | 64 | UINT8 *m_work_ram; |
r22508 | r22509 | |
661 | 664 | */ |
662 | 665 | //printf("%02x PC\n",data); |
663 | 666 | |
664 | | machine().device<beep_device>(BEEPER_TAG)->set_state(data & 0x10); |
| 667 | m_beeper->set_state(data & 0x10); |
665 | 668 | |
666 | 669 | } |
667 | 670 | |
r22508 | r22509 | |
815 | 818 | } |
816 | 819 | } |
817 | 820 | |
818 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(2400); |
819 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 821 | m_beeper->set_frequency(2400); |
| 822 | m_beeper->set_state(0); |
820 | 823 | } |
821 | 824 | |
822 | 825 | |
r22508 | r22509 | |
883 | 886 | /* sound hardware */ |
884 | 887 | MCFG_SPEAKER_STANDARD_MONO("mono") |
885 | 888 | |
886 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 889 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
887 | 890 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
888 | 891 | MACHINE_CONFIG_END |
889 | 892 | |
trunk/src/mess/drivers/pcw.c
r22508 | r22509 | |
239 | 239 | space.install_read_bank(block * 0x04000 + 0x0000, block * 0x04000 + 0x3fff,block_name); |
240 | 240 | // LOG(("MEM: read block %i -> bank %i\n",block,bank)); |
241 | 241 | } |
242 | | membank(block_name)->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + ((bank * 0x4000) % machine().device<ram_device>(RAM_TAG)->size())); |
| 242 | membank(block_name)->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); |
243 | 243 | } |
244 | 244 | |
245 | 245 | |
r22508 | r22509 | |
249 | 249 | char block_name[10]; |
250 | 250 | |
251 | 251 | sprintf(block_name,"bank%d",block+5); |
252 | | membank(block_name)->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + ((bank * 0x4000) % machine().device<ram_device>(RAM_TAG)->size())); |
| 252 | membank(block_name)->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); |
253 | 253 | // LOG(("MEM: write block %i -> bank %i\n",block,bank)); |
254 | 254 | } |
255 | 255 | |
r22508 | r22509 | |
407 | 407 | WRITE8_MEMBER(pcw_state::pcw_system_control_w) |
408 | 408 | { |
409 | 409 | upd765a_device *fdc = machine().device<upd765a_device>("upd765"); |
410 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
411 | 410 | LOG(("SYSTEM CONTROL: %d\n",data)); |
412 | 411 | |
413 | 412 | switch (data) |
r22508 | r22509 | |
545 | 544 | /* beep on */ |
546 | 545 | case 11: |
547 | 546 | { |
548 | | speaker->set_state(1); |
| 547 | m_beeper->set_state(1); |
549 | 548 | } |
550 | 549 | break; |
551 | 550 | |
552 | 551 | /* beep off */ |
553 | 552 | case 12: |
554 | 553 | { |
555 | | speaker->set_state(0); |
| 554 | m_beeper->set_state(0); |
556 | 555 | } |
557 | 556 | break; |
558 | 557 | |
r22508 | r22509 | |
995 | 994 | |
996 | 995 | TIMER_CALLBACK_MEMBER(pcw_state::setup_beep) |
997 | 996 | { |
998 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
999 | | speaker->set_state(0); |
1000 | | speaker->set_frequency(3750); |
| 997 | m_beeper->set_state(0); |
| 998 | m_beeper->set_frequency(3750); |
1001 | 999 | } |
1002 | 1000 | |
1003 | 1001 | |
r22508 | r22509 | |
1028 | 1026 | m_boot = 0; // System starts up in bootstrap mode, disabled until it's possible to emulate it. |
1029 | 1027 | |
1030 | 1028 | /* copy boot code into RAM - yes, it's skipping a step */ |
1031 | | memset(machine().device<ram_device>(RAM_TAG)->pointer(),0x00,machine().device<ram_device>(RAM_TAG)->size()); |
| 1029 | memset(m_ram->pointer(),0x00,m_ram->size()); |
1032 | 1030 | for(x=0;x<256;x++) |
1033 | | machine().device<ram_device>(RAM_TAG)->pointer()[x+2] = code[x+0x300]; |
| 1031 | m_ram->pointer()[x+2] = code[x+0x300]; |
1034 | 1032 | |
1035 | 1033 | /* and hack our way past the MCU side of the boot process */ |
1036 | 1034 | code[0x01] = 0x40; |
r22508 | r22509 | |
1291 | 1289 | |
1292 | 1290 | /* sound hardware */ |
1293 | 1291 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1294 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 1292 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
1295 | 1293 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
1296 | 1294 | |
1297 | 1295 | MCFG_UPD765A_ADD("upd765", true, true) |
trunk/src/mess/drivers/fk1.c
r22508 | r22509 | |
19 | 19 | public: |
20 | 20 | fk1_state(const machine_config &mconfig, device_type type, const char *tag) |
21 | 21 | : driver_device(mconfig, type, tag), |
22 | | m_maincpu(*this, "maincpu") |
| 22 | m_maincpu(*this, "maincpu"), |
| 23 | m_ram(*this, RAM_TAG) |
23 | 24 | { } |
24 | 25 | |
25 | 26 | required_device<cpu_device> m_maincpu; |
| 27 | required_device<ram_device> m_ram; |
| 28 | |
26 | 29 | DECLARE_WRITE8_MEMBER(fk1_ppi_1_a_w); |
27 | 30 | DECLARE_WRITE8_MEMBER(fk1_ppi_1_b_w); |
28 | 31 | DECLARE_WRITE8_MEMBER(fk1_ppi_1_c_w); |
r22508 | r22509 | |
297 | 300 | READ8_MEMBER( fk1_state::fk1_bank_ram_r ) |
298 | 301 | { |
299 | 302 | address_space &space_mem = m_maincpu->space(AS_PROGRAM); |
300 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 303 | UINT8 *ram = m_ram->pointer(); |
301 | 304 | |
302 | 305 | space_mem.install_write_bank(0x0000, 0x3fff, "bank1"); |
303 | 306 | membank("bank1")->set_base(ram); |
r22508 | r22509 | |
310 | 313 | address_space &space_mem = m_maincpu->space(AS_PROGRAM); |
311 | 314 | space_mem.unmap_write(0x0000, 0x3fff); |
312 | 315 | membank("bank1")->set_base(memregion("maincpu")->base()); |
313 | | membank("bank2")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x10000); |
| 316 | membank("bank2")->set_base(m_ram->pointer() + 0x10000); |
314 | 317 | return 0; |
315 | 318 | } |
316 | 319 | |
r22508 | r22509 | |
421 | 424 | void fk1_state::machine_reset() |
422 | 425 | { |
423 | 426 | address_space &space = m_maincpu->space(AS_PROGRAM); |
424 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 427 | UINT8 *ram = m_ram->pointer(); |
425 | 428 | |
426 | 429 | space.unmap_write(0x0000, 0x3fff); |
427 | 430 | membank("bank1")->set_base(memregion("maincpu")->base()); // ROM |
r22508 | r22509 | |
436 | 439 | { |
437 | 440 | UINT8 code; |
438 | 441 | int y, x, b; |
439 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 442 | UINT8 *ram = m_ram->pointer(); |
440 | 443 | |
441 | 444 | for (x = 0; x < 64; x++) |
442 | 445 | { |
trunk/src/mess/drivers/pb1000.c
r22508 | r22509 | |
31 | 31 | pb1000_state(const machine_config &mconfig, device_type type, const char *tag) |
32 | 32 | : driver_device(mconfig, type, tag), |
33 | 33 | m_maincpu(*this, "maincpu"), |
34 | | m_beep(*this, BEEPER_TAG), |
| 34 | m_beeper(*this, "beeper"), |
35 | 35 | m_hd44352(*this, "hd44352") |
36 | 36 | { } |
37 | 37 | |
38 | 38 | required_device<hd61700_cpu_device> m_maincpu; |
39 | | required_device<beep_device> m_beep; |
| 39 | required_device<beep_device> m_beeper; |
40 | 40 | required_device<hd44352_device> m_hd44352; |
41 | 41 | |
42 | 42 | emu_timer *m_kb_timer; |
r22508 | r22509 | |
443 | 443 | |
444 | 444 | static void port_w(hd61700_cpu_device &device, UINT8 data) |
445 | 445 | { |
446 | | device.machine().device<beep_device>(BEEPER_TAG)->set_state((BIT(data,7) ^ BIT(data,6))); |
| 446 | pb1000_state *state = device.machine().driver_data<pb1000_state>(); |
| 447 | state->m_beeper->set_state((BIT(data,7) ^ BIT(data,6))); |
447 | 448 | //printf("%x\n", data); |
448 | 449 | } |
449 | 450 | |
r22508 | r22509 | |
526 | 527 | |
527 | 528 | /* sound hardware */ |
528 | 529 | MCFG_SPEAKER_STANDARD_MONO( "mono" ) |
529 | | MCFG_SOUND_ADD( BEEPER_TAG, BEEP, 0 ) |
| 530 | MCFG_SOUND_ADD( "beeper", BEEP, 0 ) |
530 | 531 | MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) |
531 | 532 | MACHINE_CONFIG_END |
532 | 533 | |
trunk/src/mess/drivers/mz2000.c
r22508 | r22509 | |
43 | 43 | m_maincpu(*this, "maincpu"), |
44 | 44 | m_mb8877a(*this, "mb8877a"), |
45 | 45 | m_pit8253(*this, "pit"), |
46 | | m_beeper(*this, BEEPER_TAG), |
| 46 | m_beeper(*this, "beeper"), |
47 | 47 | m_region_tvram(*this, "tvram"), |
48 | 48 | m_region_gvram(*this, "gvram"), |
49 | 49 | m_region_chargen(*this, "chargen"), |
r22508 | r22509 | |
892 | 892 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") |
893 | 893 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
894 | 894 | |
895 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 895 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
896 | 896 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
897 | 897 | MACHINE_CONFIG_END |
898 | 898 | |
trunk/src/mess/drivers/nc.c
r22508 | r22509 | |
347 | 347 | |
348 | 348 | mem_bank = mem_bank & m_membank_internal_ram_mask; |
349 | 349 | |
350 | | addr = machine().device<ram_device>(RAM_TAG)->pointer() + (mem_bank<<14); |
| 350 | addr = m_ram->pointer() + (mem_bank<<14); |
351 | 351 | |
352 | 352 | membank(bank1)->set_base(addr); |
353 | 353 | membank(bank5)->set_base(addr); |
r22508 | r22509 | |
420 | 420 | if (m_file->read(&stored_size, sizeof(UINT32)) != sizeof(UINT32)) |
421 | 421 | stored_size = 0; |
422 | 422 | |
423 | | if (stored_size > machine().device<ram_device>(RAM_TAG)->size()) |
424 | | restore_size = machine().device<ram_device>(RAM_TAG)->size(); |
| 423 | if (stored_size > m_ram->size()) |
| 424 | restore_size = m_ram->size(); |
425 | 425 | else |
426 | 426 | restore_size = stored_size; |
427 | 427 | |
428 | 428 | /* read as much as will fit into memory */ |
429 | | m_file->read(machine().device<ram_device>(RAM_TAG)->pointer(), restore_size); |
| 429 | m_file->read(m_ram->pointer(), restore_size); |
430 | 430 | /* seek over remaining data */ |
431 | 431 | m_file->seek(SEEK_CUR,stored_size - restore_size); |
432 | 432 | } |
r22508 | r22509 | |
434 | 434 | /* store a block of memory to the nvram file */ |
435 | 435 | void nc_state::nc_common_store_memory_to_stream() |
436 | 436 | { |
437 | | UINT32 size = machine().device<ram_device>(RAM_TAG)->size(); |
| 437 | UINT32 size = m_ram->size(); |
438 | 438 | if (!m_file) |
439 | 439 | return; |
440 | 440 | |
r22508 | r22509 | |
443 | 443 | m_file->write(&size, sizeof(UINT32)); |
444 | 444 | |
445 | 445 | /* write data block */ |
446 | | m_file->write(machine().device<ram_device>(RAM_TAG)->pointer(), size); |
| 446 | m_file->write(m_ram->pointer(), size); |
447 | 447 | } |
448 | 448 | |
449 | 449 | void nc_state::nc_common_open_stream_for_reading() |
r22508 | r22509 | |
660 | 660 | int on; |
661 | 661 | int frequency; |
662 | 662 | int period; |
663 | | const char *beeper_device = NULL; |
| 663 | beep_device *beeper_device = NULL; |
664 | 664 | |
665 | 665 | switch(channel) |
666 | 666 | { |
667 | 667 | case 0: |
668 | | beeper_device = "beep.1"; |
| 668 | beeper_device = m_beeper1; |
669 | 669 | break; |
670 | 670 | case 1: |
671 | | beeper_device = "beep.2"; |
| 671 | beeper_device = m_beeper2; |
672 | 672 | break; |
673 | 673 | } |
674 | 674 | |
r22508 | r22509 | |
681 | 681 | frequency = (int)(1000000.0f/((float)((period & 0x07fff)<<1) * 1.6276f)); |
682 | 682 | |
683 | 683 | /* set state */ |
684 | | machine().device<beep_device>(beeper_device)->set_state(on); |
| 684 | beeper_device->set_state(on); |
685 | 685 | /* set frequency */ |
686 | | machine().device<beep_device>(beeper_device)->set_frequency(frequency); |
| 686 | beeper_device->set_frequency(frequency); |
687 | 687 | } |
688 | 688 | |
689 | 689 | WRITE8_MEMBER(nc_state::nc_sound_w) |
trunk/src/mess/drivers/mephisto.c
r22508 | r22509 | |
74 | 74 | mephisto_state(const machine_config &mconfig, device_type type, const char *tag) |
75 | 75 | : mboard_state(mconfig, type, tag) |
76 | 76 | , m_maincpu(*this, "maincpu") |
77 | | , m_beep(*this, BEEPER_TAG) |
| 77 | , m_beep(*this, "beeper") |
78 | 78 | , m_key1_0(*this, "KEY1_0") |
79 | 79 | , m_key1_1(*this, "KEY1_1") |
80 | 80 | , m_key1_2(*this, "KEY1_2") |
r22508 | r22509 | |
459 | 459 | |
460 | 460 | /* sound hardware */ |
461 | 461 | MCFG_SPEAKER_STANDARD_MONO("mono") |
462 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 462 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
463 | 463 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
464 | 464 | |
465 | 465 | MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", mephisto_state, update_nmi, attotime::from_hz(600)) |
trunk/src/mess/drivers/supercon.c
r22508 | r22509 | |
29 | 29 | supercon_state(const machine_config &mconfig, device_type type, const char *tag) |
30 | 30 | : driver_device(mconfig, type, tag), |
31 | 31 | m_maincpu(*this, "maincpu"), |
32 | | m_beep(*this, BEEPER_TAG), |
| 32 | m_beep(*this, "beeper"), |
33 | 33 | m_b_white(*this, "B_WHITE"), |
34 | 34 | m_b_black(*this, "B_BLACK"), |
35 | 35 | m_b_clr(*this, "B_CLR"), |
r22508 | r22509 | |
793 | 793 | |
794 | 794 | /* sound hardware */ |
795 | 795 | MCFG_SPEAKER_STANDARD_MONO("mono") |
796 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 796 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
797 | 797 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
798 | 798 | |
799 | 799 | MCFG_TIMER_DRIVER_ADD_PERIODIC("artwork_timer", supercon_state, update_artwork, attotime::from_hz(20)) |
trunk/src/mess/drivers/rt1715.c
r22508 | r22509 | |
27 | 27 | public: |
28 | 28 | rt1715_state(const machine_config &mconfig, device_type type, const char *tag) |
29 | 29 | : driver_device(mconfig, type, tag) , |
30 | | m_maincpu(*this, "maincpu") { } |
| 30 | m_maincpu(*this, "maincpu"), |
| 31 | m_ram(*this, RAM_TAG) { } |
31 | 32 | |
32 | 33 | int m_led1_val; |
33 | 34 | int m_led2_val; |
r22508 | r22509 | |
41 | 42 | virtual void machine_reset(); |
42 | 43 | virtual void palette_init(); |
43 | 44 | required_device<cpu_device> m_maincpu; |
| 45 | required_device<ram_device> m_ram; |
44 | 46 | }; |
45 | 47 | |
46 | 48 | |
r22508 | r22509 | |
109 | 111 | |
110 | 112 | void rt1715_state::machine_start() |
111 | 113 | { |
112 | | membank("bank2")->set_base(machine().device<ram_device>(RAM_TAG)->pointer() + 0x0800); |
113 | | membank("bank3")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 114 | membank("bank2")->set_base(m_ram->pointer() + 0x0800); |
| 115 | membank("bank3")->set_base(m_ram->pointer()); |
114 | 116 | } |
115 | 117 | |
116 | 118 | void rt1715_state::machine_reset() |
r22508 | r22509 | |
124 | 126 | logerror("%s: rt1715_set_bank %02x\n", machine().describe_context(), data); |
125 | 127 | |
126 | 128 | /* disable ROM, enable RAM */ |
127 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 129 | membank("bank1")->set_base(m_ram->pointer()); |
128 | 130 | } |
129 | 131 | |
130 | 132 | /*************************************************************************** |
trunk/src/mess/drivers/glasgow.c
r22508 | r22509 | |
59 | 59 | glasgow_state(const machine_config &mconfig, device_type type, const char *tag) |
60 | 60 | : mboard_state(mconfig, type, tag), |
61 | 61 | m_maincpu(*this, "maincpu"), |
62 | | m_beep(*this, BEEPER_TAG) |
| 62 | m_beep(*this, "beeper") |
63 | 63 | { } |
64 | 64 | |
65 | 65 | required_device<cpu_device> m_maincpu; |
r22508 | r22509 | |
511 | 511 | MCFG_CPU_ADD("maincpu", M68000, 12000000) |
512 | 512 | MCFG_CPU_PROGRAM_MAP(glasgow_mem) |
513 | 513 | MCFG_SPEAKER_STANDARD_MONO("mono") |
514 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 514 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
515 | 515 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
516 | 516 | |
517 | 517 | MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", glasgow_state, update_nmi, attotime::from_hz(50)) |
trunk/src/mess/drivers/thomson.c
r22508 | r22509 | |
317 | 317 | /* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ |
318 | 318 | /* 0x20000 - 0x247ff: 18 KB floppy / network ROM controllers */ |
319 | 319 | |
320 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: |
| 320 | /* RAM mapping: |
321 | 321 | 0x0000 - 0x3fff: 16 KB video RAM (actually 8 K x 8 bits + 8 K x 6 bits) |
322 | 322 | 0x4000 - 0x5fff: 8 KB base RAM |
323 | 323 | 0x6000 - 0x9fff: 16 KB extended RAM |
r22508 | r22509 | |
784 | 784 | /* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ |
785 | 785 | /* 0x20000 - 0x247ff: 18 KB floppy / network ROM controllers */ |
786 | 786 | |
787 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: |
| 787 | /* RAM mapping: |
788 | 788 | 0x00000 - 0x03fff: 16 KB video RAM |
789 | 789 | 0x04000 - 0x07fff: 16 KB unbanked base RAM |
790 | 790 | 0x08000 - 0x1ffff: 6 * 16 KB banked extended RAM |
r22508 | r22509 | |
975 | 975 | /* 0x10000 - 0x1ffff: 16 KB integrated BASIC / 64 KB external cartridge */ |
976 | 976 | /* 0x20000 - 0x247ff: 18 KB floppy / network ROM controllers */ |
977 | 977 | |
978 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: |
| 978 | /* RAM mapping: |
979 | 979 | 0x00000 - 0x03fff: 16 KB video RAM |
980 | 980 | 0x04000 - 0x0bfff: 32 KB unbanked base RAM |
981 | 981 | 0x0c000 - 0x1bfff: 4 * 16 KB bank extended RAM |
r22508 | r22509 | |
1182 | 1182 | /* 0x20000 - 0x3ffff: 128 KB internal software ROM */ |
1183 | 1183 | /* 0x40000 - 0x447ff: 18 KB external floppy / network ROM controllers */ |
1184 | 1184 | |
1185 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: |
| 1185 | /* RAM mapping: |
1186 | 1186 | 0x00000 - 0x03fff: 16 KB video RAM |
1187 | 1187 | 0x04000 - 0x07fff: 16 KB unbanked base RAM |
1188 | 1188 | 0x08000 - 0x2ffff: 10 * 16 KB banked extended RAM |
r22508 | r22509 | |
1507 | 1507 | /* 0x30000 - 0x33fff: 16 KB BIOS ROM */ |
1508 | 1508 | /* 0x34000 - 0x387ff: 18 KB external floppy / network ROM controllers */ |
1509 | 1509 | |
1510 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: 512 KB flat (including video) */ |
| 1510 | /* RAM mapping: 512 KB flat (including video) */ |
1511 | 1511 | |
1512 | 1512 | ADDRESS_MAP_END |
1513 | 1513 | |
r22508 | r22509 | |
1703 | 1703 | /* 0x30000 - 0x33fff: 16 KB BIOS ROM */ |
1704 | 1704 | /* 0x34000 - 0x387ff: 18 KB external floppy / network ROM controllers */ |
1705 | 1705 | |
1706 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: 512 KB flat (including video) */ |
| 1706 | /* RAM mapping: 512 KB flat (including video) */ |
1707 | 1707 | |
1708 | 1708 | ADDRESS_MAP_END |
1709 | 1709 | |
r22508 | r22509 | |
1863 | 1863 | /* 0x20000 - 0x2ffff: 64 KB BIOS ROM */ |
1864 | 1864 | /* 0x30000 - 0x347ff: 16 KB floppy / network ROM controllers */ |
1865 | 1865 | |
1866 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: 128 KB flat (including video) */ |
| 1866 | /* RAM mapping: 128 KB flat (including video) */ |
1867 | 1867 | |
1868 | 1868 | ADDRESS_MAP_END |
1869 | 1869 | |
r22508 | r22509 | |
2178 | 2178 | /* 0x20000 - 0x2ffff: 64 KB BIOS ROM */ |
2179 | 2179 | /* 0x30000 - 0x347ff: 16 KB floppy / network ROM controllers */ |
2180 | 2180 | |
2181 | | /* machine.device<ram_device>(RAM_TAG)->pointer() mapping: 128 KB flat (including video) */ |
| 2181 | /* RAM mapping: 128 KB flat (including video) */ |
2182 | 2182 | |
2183 | 2183 | ADDRESS_MAP_END |
2184 | 2184 | |
trunk/src/mess/drivers/studio2.c
r22508 | r22509 | |
446 | 446 | |
447 | 447 | WRITE_LINE_MEMBER( studio2_state::q_w ) |
448 | 448 | { |
449 | | m_speaker->set_state(state); |
| 449 | m_beeper->set_state(state); |
450 | 450 | } |
451 | 451 | |
452 | 452 | static COSMAC_INTERFACE( studio2_cosmac_intf ) |
r22508 | r22509 | |
550 | 550 | |
551 | 551 | /* sound hardware */ |
552 | 552 | MCFG_SPEAKER_STANDARD_MONO("mono") |
553 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 553 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
554 | 554 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
555 | 555 | |
556 | 556 | MCFG_FRAGMENT_ADD( studio2_cartslot ) |
r22508 | r22509 | |
569 | 569 | |
570 | 570 | /* sound hardware */ |
571 | 571 | MCFG_SPEAKER_STANDARD_MONO("mono") |
572 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 572 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
573 | 573 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
574 | 574 | |
575 | 575 | MCFG_FRAGMENT_ADD( studio2_cartslot ) |
r22508 | r22509 | |
588 | 588 | |
589 | 589 | /* sound hardware */ |
590 | 590 | MCFG_SPEAKER_STANDARD_MONO("mono") |
591 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 591 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
592 | 592 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
593 | 593 | |
594 | 594 | MCFG_CDP1864_ADD(CDP1864_TAG, CDP1864_CLOCK, mpt02_cdp1864_intf) |
r22508 | r22509 | |
629 | 629 | |
630 | 630 | TIMER_CALLBACK_MEMBER(studio2_state::setup_beep) |
631 | 631 | { |
632 | | beep_device *speaker = machine().device<beep_device>(BEEPER_TAG); |
633 | | speaker->set_state(0); |
634 | | speaker->set_frequency(300); |
| 632 | m_beeper->set_state(0); |
| 633 | m_beeper->set_frequency(300); |
635 | 634 | } |
636 | 635 | |
637 | 636 | DRIVER_INIT_MEMBER(studio2_state,studio2) |
trunk/src/mess/drivers/x68k.c
r22508 | r22509 | |
1466 | 1466 | // if(offset == 0x5a/2) // 0x5a should be 0 if no SASI HDs are present. |
1467 | 1467 | // return 0x0000; |
1468 | 1468 | if(offset == 0x08/2) |
1469 | | return machine().device<ram_device>(RAM_TAG)->size() >> 16; // RAM size |
| 1469 | return m_ram->size() >> 16; // RAM size |
1470 | 1470 | #if 0 |
1471 | 1471 | if(offset == 0x46/2) |
1472 | 1472 | return 0x0024; |
r22508 | r22509 | |
1481 | 1481 | READ32_MEMBER(x68k_state::x68k_sram32_r) |
1482 | 1482 | { |
1483 | 1483 | if(offset == 0x08/4) |
1484 | | return (machine().device<ram_device>(RAM_TAG)->size() & 0xffff0000); // RAM size |
| 1484 | return (m_ram->size() & 0xffff0000); // RAM size |
1485 | 1485 | #if 0 |
1486 | 1486 | if(offset == 0x46/2) |
1487 | 1487 | return 0x0024; |
r22508 | r22509 | |
1600 | 1600 | { |
1601 | 1601 | int val = param; |
1602 | 1602 | int v; |
1603 | | UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); |
| 1603 | UINT8 *ram = m_ram->pointer(); |
1604 | 1604 | |
1605 | 1605 | if(strcmp(machine().system().name,"x68030") == 0) |
1606 | 1606 | v = 0x0b; |
r22508 | r22509 | |
2410 | 2410 | UINT8* romdata = memregion("user2")->base(); |
2411 | 2411 | attotime irq_time; |
2412 | 2412 | |
2413 | | memset(machine().device<ram_device>(RAM_TAG)->pointer(),0,machine().device<ram_device>(RAM_TAG)->size()); |
2414 | | memcpy(machine().device<ram_device>(RAM_TAG)->pointer(),romdata,8); |
| 2413 | memset(m_ram->pointer(),0,m_ram->size()); |
| 2414 | memcpy(m_ram->pointer(),romdata,8); |
2415 | 2415 | |
2416 | 2416 | // init keyboard |
2417 | 2417 | m_keyboard.delay = 500; // 3*100+200 |
r22508 | r22509 | |
2468 | 2468 | m_spriteram = (UINT16*)(*memregion("user1")); |
2469 | 2469 | space.install_read_handler(0x000000,0xbffffb,0xffffffff,0,read16_delegate(FUNC(x68k_state::x68k_emptyram_r),this)); |
2470 | 2470 | space.install_write_handler(0x000000,0xbffffb,0xffffffff,0,write16_delegate(FUNC(x68k_state::x68k_emptyram_w),this)); |
2471 | | space.install_readwrite_bank(0x000000,machine().device<ram_device>(RAM_TAG)->size()-1,0xffffffff,0,"bank1"); |
2472 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 2471 | space.install_readwrite_bank(0x000000,m_ram->size()-1,0xffffffff,0,"bank1"); |
| 2472 | membank("bank1")->set_base(m_ram->pointer()); |
2473 | 2473 | space.install_read_handler(0xc00000,0xdfffff,0xffffffff,0,read16_delegate(FUNC(x68k_state::x68k_gvram_r),this)); |
2474 | 2474 | space.install_write_handler(0xc00000,0xdfffff,0xffffffff,0,write16_delegate(FUNC(x68k_state::x68k_gvram_w),this)); |
2475 | 2475 | membank("bank2")->set_base(m_gvram16); // so that code in VRAM is executable - needed for Terra Cresta |
r22508 | r22509 | |
2515 | 2515 | m_spriteram = (UINT16*)(*memregion("user1")); |
2516 | 2516 | space.install_read_handler(0x000000,0xbffffb,0xffffffff,0,read16_delegate(FUNC(x68k_state::x68k_rom0_r),this),0xffffffff); |
2517 | 2517 | space.install_write_handler(0x000000,0xbffffb,0xffffffff,0,write16_delegate(FUNC(x68k_state::x68k_rom0_w),this),0xffffffff); |
2518 | | space.install_readwrite_bank(0x000000,machine().device<ram_device>(RAM_TAG)->size()-1,0xffffffff,0,"bank1"); |
2519 | | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| 2518 | space.install_readwrite_bank(0x000000,m_ram->size()-1,0xffffffff,0,"bank1"); |
| 2519 | membank("bank1")->set_base(m_ram->pointer()); |
2520 | 2520 | space.install_read_handler(0xc00000,0xdfffff,0xffffffff,0,read32_delegate(FUNC(x68k_state::x68k_gvram32_r),this)); |
2521 | 2521 | space.install_write_handler(0xc00000,0xdfffff,0xffffffff,0,write32_delegate(FUNC(x68k_state::x68k_gvram32_w),this)); |
2522 | 2522 | membank("bank2")->set_base(m_gvram32); // so that code in VRAM is executable - needed for Terra Cresta |
trunk/src/mess/drivers/rx78.c
r22508 | r22509 | |
52 | 52 | public: |
53 | 53 | rx78_state(const machine_config &mconfig, device_type type, const char *tag) |
54 | 54 | : driver_device(mconfig, type, tag), |
55 | | m_maincpu(*this, "maincpu"), |
56 | | m_cass(*this, "cassette") |
| 55 | m_maincpu(*this, "maincpu"), |
| 56 | m_cass(*this, "cassette"), |
| 57 | m_ram(*this, RAM_TAG) |
57 | 58 | { } |
58 | 59 | |
59 | 60 | DECLARE_READ8_MEMBER( key_r ); |
r22508 | r22509 | |
78 | 79 | DECLARE_DRIVER_INIT(rx78); |
79 | 80 | required_device<cpu_device> m_maincpu; |
80 | 81 | required_device<cassette_image_device> m_cass; |
| 82 | required_device<ram_device> m_ram; |
81 | 83 | DECLARE_DEVICE_IMAGE_LOAD_MEMBER( rx78_cart ); |
82 | 84 | }; |
83 | 85 | |
r22508 | r22509 | |
514 | 516 | |
515 | 517 | DRIVER_INIT_MEMBER(rx78_state,rx78) |
516 | 518 | { |
517 | | UINT32 ram_size = machine().device<ram_device>(RAM_TAG)->size(); |
| 519 | UINT32 ram_size = m_ram->size(); |
518 | 520 | address_space &prg = m_maincpu->space(AS_PROGRAM); |
519 | 521 | |
520 | 522 | if(ram_size == 0x4000) |
trunk/src/mame/drivers/deshoros.c
r22508 | r22509 | |
36 | 36 | public: |
37 | 37 | destiny_state(const machine_config &mconfig, device_type type, const char *tag) |
38 | 38 | : driver_device(mconfig, type, tag), |
39 | | m_maincpu(*this, "maincpu") |
| 39 | m_maincpu(*this, "maincpu"), |
| 40 | m_beeper(*this, "beeper") |
40 | 41 | { } |
41 | 42 | |
42 | 43 | required_device<cpu_device> m_maincpu; |
| 44 | required_device<beep_device> m_beeper; |
43 | 45 | |
44 | 46 | char m_led_array[21]; |
45 | 47 | |
r22508 | r22509 | |
158 | 160 | WRITE8_MEMBER(destiny_state::sound_w) |
159 | 161 | { |
160 | 162 | // a0: sound on/off |
161 | | machine().device<beep_device>(BEEPER_TAG)->set_state(~offset & 1); |
| 163 | m_beeper->set_state(~offset & 1); |
162 | 164 | } |
163 | 165 | |
164 | 166 | static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, destiny_state ) |
r22508 | r22509 | |
247 | 249 | |
248 | 250 | void destiny_state::machine_start() |
249 | 251 | { |
250 | | machine().device<beep_device>(BEEPER_TAG)->set_frequency(800); // TODO: determine exact frequency thru schematics |
251 | | machine().device<beep_device>(BEEPER_TAG)->set_state(0); |
| 252 | m_beeper->set_frequency(800); // TODO: determine exact frequency thru schematics |
| 253 | m_beeper->set_state(0); |
252 | 254 | } |
253 | 255 | |
254 | 256 | void destiny_state::machine_reset() |
r22508 | r22509 | |
275 | 277 | |
276 | 278 | /* sound hardware */ |
277 | 279 | MCFG_SPEAKER_STANDARD_MONO("mono") |
278 | | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 280 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
279 | 281 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
280 | 282 | MACHINE_CONFIG_END |
281 | 283 | |
trunk/src/mame/drivers/dlair.c
r22508 | r22509 | |
54 | 54 | m_pr7820(*this, "ld_pr7820"), |
55 | 55 | m_22vp932(*this, "ld_22vp932") , |
56 | 56 | m_videoram(*this, "videoram"), |
57 | | m_maincpu(*this, "maincpu") { } |
| 57 | m_maincpu(*this, "maincpu"), |
| 58 | m_beeper(*this, "beeper") { } |
58 | 59 | |
59 | 60 | void laserdisc_data_w(UINT8 data) |
60 | 61 | { |
r22508 | r22509 | |
120 | 121 | DECLARE_WRITE16_MEMBER(serial_transmit); |
121 | 122 | DECLARE_READ16_MEMBER(serial_receive); |
122 | 123 | required_device<cpu_device> m_maincpu; |
| 124 | optional_device<beep_device> m_beeper; |
123 | 125 | }; |
124 | 126 | |
125 | 127 | |
r22508 | r22509 | |
284 | 286 | INTERRUPT_GEN_MEMBER(dlair_state::vblank_callback) |
285 | 287 | { |
286 | 288 | /* also update the speaker on the European version */ |
287 | | beep_device *beep = machine().device<beep_device>("beep"); |
288 | | if (beep != NULL) |
| 289 | if (m_beeper != NULL) |
289 | 290 | { |
290 | 291 | z80ctc_device *ctc = machine().device<z80ctc_device>("ctc"); |
291 | | beep->set_state(1); |
292 | | beep->set_frequency(ATTOSECONDS_TO_HZ(ctc->period(0).attoseconds)); |
| 292 | m_beeper->set_state(1); |
| 293 | m_beeper->set_frequency(ATTOSECONDS_TO_HZ(ctc->period(0).attoseconds)); |
293 | 294 | } |
294 | 295 | } |
295 | 296 | |
r22508 | r22509 | |
789 | 790 | /* sound hardware */ |
790 | 791 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
791 | 792 | |
792 | | MCFG_SOUND_ADD("beep", BEEP, 0) |
| 793 | MCFG_SOUND_ADD("beeper", BEEP, 0) |
793 | 794 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.33) |
794 | 795 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.33) |
795 | 796 | |