Previous 199869 Revisions Next

r19227 Friday 30th November, 2012 at 02:05:48 UTC by R. Belmont
(MESS) Finished sample ROM dump for SD-1 & SD-1 32 [Christian Brunschen]
[src/mess/drivers]esq5505.c

trunk/src/mess/drivers/esq5505.c
r19226r19227
3333   4 = WAVE
3434   5 = SELECT VOICE
3535   6 = MIXER/SHAPER
36   7 & 8 =  EFFECT
36    7 =  EFFECT
37    8 = COMPARE
3738   9 = COPY EFFECTS PARAMETERS
3839   10 = LFO
3940   11 = PITCH
r19226r19227
4344   15 = FILTER
4445   16 = ENV3
4546    17 = OUTPUT
46    18 = ERROR 20 (VFX) / SEQUENCER MUST BE LOADED (VFX-SD/SD-1)
47    18 = ERROR 20 (VFX) / SEQ. CONTROL
4748    19 = ?
4849    20 = MASTER
4950    21 = STORAGE
r19226r19227
5455   26 = PSEL
5556   27 = STAT
5657   28 = EFFECT
57   29 = ?
58   30 = TRAX
59    31 = TRAX (page 2)
58   29 = SEQ?  (toggles INT0 / TRAX display)
59   30 = TRACKS 1-6
60    31 = TRACKS 7-12
6061    32 = ERROR 20 (VFX) / CLICK-REC
6162    33 = ERROR 20 (VFX) / LOCATE
6263   34 = BUTTON 8
r19226r19227
7677    48 = BUTTON 5
7778    49 = BUTTON 6
7879    50 = SOFT BOTTOM LEFT
79    51 = ERROR 202 (VFX) / SEQ0 $SONG-00
80    51 = ERROR 202 (VFX) / SEQ.
8081    52 = CART
8182    53 = SOUNDS
8283    54 = PRESETS
r19226r19227
110111#define SQ1     (2)
111112
112113#define KEYBOARD_HACK (1)   // turn on to play the SQ-1, SD-1, and SD-1 32-voice: Z and X are program up/down, A/S/D/F/G/H/J/K/L and Q/W/E/R/T/Y/U play notes
113#define HACK_VIA_MIDI   (0)
114#define HACK_VIA_MIDI   (1)
114115
115116#if KEYBOARD_HACK
116117#if HACK_VIA_MIDI
r19226r19227
148149    DECLARE_WRITE16_MEMBER(es5510_dsp_w);
149150    DECLARE_READ16_MEMBER(mc68681_r);
150151    DECLARE_WRITE16_MEMBER(mc68681_w);
152    DECLARE_READ16_MEMBER(lower_r);
153    DECLARE_WRITE16_MEMBER(lower_w);
151154
152155    int m_system_type;
153156    UINT8 m_duart_io;
r19226r19227
164167    UINT32  es5510_dadr_latch;
165168    UINT32  es5510_gpr_latch;
166169    UINT8   es5510_ram_sel;
170
171   UINT16    *m_rom, *m_ram;
172
167173public:
168174   DECLARE_DRIVER_INIT(eps);
169175   DECLARE_DRIVER_INIT(common);
r19226r19227
182188
183189void esq5505_state::machine_reset()
184190{
185   UINT8 *ROM = machine().root_device().memregion("osrom")->base();
186   UINT8 *RAM = (UINT8 *)machine().root_device().memshare("osram")->ptr();
191   m_rom = (UINT16 *)machine().root_device().memregion("osrom")->base();
192   m_ram = (UINT16 *)machine().root_device().memshare("osram")->ptr();
187193
188    memcpy(RAM, ROM, 256);
189
190    // pick up the new vectors
191    m_maincpu->reset();
192
193    m_bCalibSecondByte = false;
194   m_bCalibSecondByte = false;
194195}
195196
196197READ16_MEMBER(esq5505_state::es5510_dsp_r)
r19226r19227
284285   }
285286}
286287
288READ16_MEMBER(esq5505_state::lower_r)
289{
290   offset &= 0x7fff;
291
292   // get pointers when 68k resets
293   if (!m_rom)
294   {
295      m_rom = (UINT16 *)machine().root_device().memregion("osrom")->base();
296      m_ram = (UINT16 *)machine().root_device().memshare("osram")->ptr();
297   }
298
299   if (offset < 0x4000)
300   {
301      if (m68k_get_fc(m_maincpu) == 0x6)   // supervisor mode, ROM
302      {
303         return m_rom[offset];
304      }
305      else
306      {
307         return m_ram[offset];
308      }
309   }
310   else
311   {
312      return m_ram[offset];
313   }
314}
315
316WRITE16_MEMBER(esq5505_state::lower_w)
317{
318   offset &= 0x7fff;
319
320   if (offset < 0x4000)
321   {
322      if (m68k_get_fc(m_maincpu) != 0x6)   // if not supervisor mode, RAM
323      {
324         COMBINE_DATA(&m_ram[offset]);
325      }
326   }
327   else
328   {
329      COMBINE_DATA(&m_ram[offset]);
330   }
331}
332
287333static ADDRESS_MAP_START( vfx_map, AS_PROGRAM, 16, esq5505_state )
288   AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_MIRROR(0x30000) AM_SHARE("osram")
334   AM_RANGE(0x000000, 0x03ffff) AM_READWRITE(lower_r, lower_w)
289335   AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE_LEGACY("ensoniq", es5505_r, es5505_w)
290336   AM_RANGE(0x260000, 0x2601ff) AM_READWRITE(es5510_dsp_r, es5510_dsp_w)
291337    AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8_LEGACY("duart", duart68681_r, duart68681_w, 0x00ff)
r19226r19227
294340ADDRESS_MAP_END
295341
296342static ADDRESS_MAP_START( vfxsd_map, AS_PROGRAM, 16, esq5505_state )
297   AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("osram") AM_MIRROR(0x30000)
343   AM_RANGE(0x000000, 0x03ffff) AM_READWRITE(lower_r, lower_w)
298344   AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE_LEGACY("ensoniq", es5505_r, es5505_w)
299345   AM_RANGE(0x260000, 0x2601ff) AM_READWRITE(es5510_dsp_r, es5510_dsp_w)
300346    AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8_LEGACY("duart", duart68681_r, duart68681_w, 0x00ff)
r19226r19227
305351ADDRESS_MAP_END
306352
307353static ADDRESS_MAP_START( eps_map, AS_PROGRAM, 16, esq5505_state )
308   AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_MIRROR(0x30000) AM_SHARE("osram")
354   AM_RANGE(0x000000, 0x03ffff) AM_READWRITE(lower_r, lower_w)
309355   AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE_LEGACY("ensoniq", es5505_r, es5505_w)
310356    AM_RANGE(0x240000, 0x2400ff) AM_DEVREADWRITE_LEGACY("mc68450", hd63450_r, hd63450_w)
311357    AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8_LEGACY("duart", duart68681_r, duart68681_w, 0x00ff)
r19226r19227
461507    if (channel == 1)
462508    {
463509//        printf("ch %d: [%02x] (PC=%x)\n", channel, data, state->m_maincpu->pc());
510
464511        switch (state->m_system_type)
465512        {
466513            case GENERIC:
r19226r19227
818865    ROM_LOAD16_BYTE( "u35.bin", 0x100001, 0x080000, CRC(c0055975) SHA1(5a22f1d5e437c6277eb0cfb1ff1b3f8dcdea1cc6) )
819866
820867    ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) // BS=1 region (16-bit)
868   ROM_LOAD16_WORD_SWAP( "u38.bin", 0x000000, 0x100000, CRC(a904190e) SHA1(e4fd4e1130906086fb4182dcb8b51269969e2836) )
869   ROM_LOAD16_WORD_SWAP( "u37.bin", 0x100000, 0x100000, CRC(d706cef3) SHA1(24ba35248509e9ca45110e2402b8085006ea0cfc) )
821870
822871    ROM_REGION(0x80000, "nibbles", 0)
823872    ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) )
r19226r19227
833882    ROM_LOAD16_BYTE( "u35.bin", 0x100001, 0x080000, CRC(c0055975) SHA1(5a22f1d5e437c6277eb0cfb1ff1b3f8dcdea1cc6) )
834883
835884    ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) // BS=1 region (16-bit)
885   ROM_LOAD16_WORD_SWAP( "u38.bin", 0x000000, 0x100000, CRC(a904190e) SHA1(e4fd4e1130906086fb4182dcb8b51269969e2836) )
886   ROM_LOAD16_WORD_SWAP( "u37.bin", 0x100000, 0x100000, CRC(d706cef3) SHA1(24ba35248509e9ca45110e2402b8085006ea0cfc) )
836887
837888    ROM_REGION(0x80000, "nibbles", ROMREGION_ERASE00)
838889    ROM_LOAD( "u36.bin", 0x000000, 0x080000, CRC(c3ddaf95) SHA1(44a7bd89cd7e82952cc5100479e110c385246559) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team