1
#include "includes/cidelsa.h"
3
/* CDP1802 Interface */
5
READ_LINE_MEMBER( cidelsa_state::clear_r )
10
WRITE_LINE_MEMBER( cidelsa_state::q_w )
15
static COSMAC_INTERFACE( cidelsa_cdp1802_config )
18
DEVCB_DRIVER_LINE_MEMBER(cidelsa_state, clear_r),
23
DEVCB_DRIVER_LINE_MEMBER(cidelsa_state, q_w),
33
WRITE8_MEMBER( draco_state::sound_bankswitch_w )
46
int bank = BIT(data, 3);
48
memory_set_bank(machine(), "bank1", bank);
51
WRITE8_MEMBER( draco_state::sound_g_w )
60
1 1 INTAK latch address
67
ay8910_data_w(m_psg, 0, m_psg_latch);
71
m_psg_latch = ay8910_r(m_psg, 0);
75
ay8910_address_w(m_psg, 0, m_psg_latch);
80
READ8_MEMBER( draco_state::sound_in_r )
82
return ~(m_sound) & 0x07;
85
READ8_MEMBER( draco_state::psg_r )
90
WRITE8_MEMBER( draco_state::psg_w )
95
/* Read/Write Handlers */
97
WRITE8_MEMBER( cidelsa_state::destryer_out1_w )
113
/* CDP1852 Interfaces */
115
WRITE8_MEMBER( cidelsa_state::altair_out1_w )
130
set_led_status(machine(), 0, data & 0x08); // 1P
131
set_led_status(machine(), 1, data & 0x10); // 2P
132
set_led_status(machine(), 2, data & 0x20); // FIRE
135
WRITE8_MEMBER( draco_state::out1_w )
140
0 3K9 -> Green signal
141
1 820R -> Blue signal
143
3 1K -> not connected
145
5 SONIDO A -> COP402 IN0
146
6 SONIDO B -> COP402 IN1
147
7 SONIDO C -> COP402 IN2
150
m_sound = (data & 0xe0) >> 5;
153
static CDP1852_INTERFACE( cidelsa_cdp1852_in0_intf )
156
DEVCB_INPUT_PORT("IN0"),
161
static CDP1852_INTERFACE( cidelsa_cdp1852_in1_intf )
164
DEVCB_INPUT_PORT("IN1"),
169
static CDP1852_INTERFACE( cidelsa_cdp1852_in2_intf )
172
DEVCB_INPUT_PORT("IN2"),
177
static CDP1852_INTERFACE( altair_cdp1852_out1_intf )
181
DEVCB_DRIVER_MEMBER(cidelsa_state, altair_out1_w),
185
static CDP1852_INTERFACE( draco_cdp1852_out1_intf )
189
DEVCB_DRIVER_MEMBER(draco_state, out1_w),
193
/* COP400 Interface */
195
static COP400_INTERFACE( draco_cop_intf )
197
COP400_CKI_DIVISOR_16, // ???
198
COP400_CKO_OSCILLATOR_OUTPUT, // ???
199
COP400_MICROBUS_DISABLED
206
static ADDRESS_MAP_START( destryer_map, AS_PROGRAM, 8, cidelsa_state )
207
AM_RANGE(0x0000, 0x1fff) AM_ROM
208
AM_RANGE(0x2000, 0x20ff) AM_RAM AM_SHARE("nvram")
209
AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, char_ram_r, char_ram_w)
210
AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, page_ram_r, page_ram_w)
213
static ADDRESS_MAP_START( destryera_map, AS_PROGRAM, 8, cidelsa_state )
214
AM_RANGE(0x0000, 0x1fff) AM_ROM
215
AM_RANGE(0x3000, 0x30ff) AM_RAM AM_SHARE("nvram")
216
AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, char_ram_r, char_ram_w)
217
AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, page_ram_r, page_ram_w)
220
static ADDRESS_MAP_START( destryer_io_map, AS_IO, 8, cidelsa_state )
221
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITE(destryer_out1_w)
222
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
223
AM_RANGE(0x03, 0x07) AM_WRITE(cdp1869_w)
228
static ADDRESS_MAP_START( altair_map, AS_PROGRAM, 8, cidelsa_state )
229
AM_RANGE(0x0000, 0x2fff) AM_ROM
230
AM_RANGE(0x3000, 0x30ff) AM_RAM AM_SHARE("nvram")
231
AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, char_ram_r, char_ram_w)
232
AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, page_ram_r, page_ram_w)
235
static ADDRESS_MAP_START( altair_io_map, AS_IO, 8, cidelsa_state )
236
AM_RANGE(0x01, 0x01) AM_DEVREAD("ic23", cdp1852_device, read) AM_DEVWRITE("ic26", cdp1852_device, write)
237
AM_RANGE(0x02, 0x02) AM_DEVREAD("ic24", cdp1852_device, read)
238
AM_RANGE(0x04, 0x04) AM_DEVREAD("ic25", cdp1852_device, read)
239
AM_RANGE(0x03, 0x07) AM_WRITE(cdp1869_w)
244
static ADDRESS_MAP_START( draco_map, AS_PROGRAM, 8, draco_state )
245
AM_RANGE(0x0000, 0x3fff) AM_ROM
246
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("nvram")
247
AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, char_ram_r, char_ram_w)
248
AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_device, page_ram_r, page_ram_w)
251
static ADDRESS_MAP_START( draco_io_map, AS_IO, 8, draco_state )
252
AM_RANGE(0x01, 0x01) AM_DEVREAD("ic29", cdp1852_device, read) AM_DEVWRITE("ic32", cdp1852_device, write)
253
AM_RANGE(0x02, 0x02) AM_DEVREAD("ic30", cdp1852_device, read)
254
AM_RANGE(0x04, 0x04) AM_DEVREAD("ic31", cdp1852_device, read)
255
AM_RANGE(0x03, 0x07) AM_WRITE_BASE(cidelsa_state, cdp1869_w)
258
static ADDRESS_MAP_START( draco_sound_map, AS_PROGRAM, 8, draco_state )
259
AM_RANGE(0x000, 0x3ff) AM_ROMBANK("bank1")
262
static ADDRESS_MAP_START( draco_sound_io_map, AS_IO, 8, draco_state )
263
AM_RANGE(COP400_PORT_D, COP400_PORT_D) AM_WRITE(sound_bankswitch_w)
264
AM_RANGE(COP400_PORT_G, COP400_PORT_G) AM_WRITE(sound_g_w)
265
AM_RANGE(COP400_PORT_L, COP400_PORT_L) AM_READWRITE(psg_r, psg_w)
266
AM_RANGE(COP400_PORT_IN, COP400_PORT_IN) AM_READ(sound_in_r)
267
AM_RANGE(COP400_PORT_SIO, COP400_PORT_SIO) AM_NOP
268
AM_RANGE(COP400_PORT_SK, COP400_PORT_SK) AM_WRITENOP
273
static CUSTOM_INPUT( cdp1869_pcb_r )
275
cidelsa_state *state = field.machine().driver_data<cidelsa_state>();
277
return state->m_cdp1869_pcb;
280
static INPUT_CHANGED( ef_w )
282
cputag_set_input_line(field.machine(), CDP1802_TAG, (int)(FPTR)param, newval);
285
static INPUT_PORTS_START( destryer )
287
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // CARTUCHO
288
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // 1P
289
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) // 2P
290
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // RG
291
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF
292
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR
293
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
294
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL)
297
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
298
PORT_DIPSETTING( 0x00, "Very Conserv" )
299
PORT_DIPSETTING( 0x01, "Conserv" )
300
PORT_DIPSETTING( 0x02, "Liberal" )
301
PORT_DIPSETTING( 0x03, "Very Liberal" )
302
PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) )
303
PORT_DIPSETTING( 0x0c, "5000" )
304
PORT_DIPSETTING( 0x08, "7000" )
305
PORT_DIPSETTING( 0x04, "10000" )
306
PORT_DIPSETTING( 0x00, "14000" )
307
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) )
308
PORT_DIPSETTING( 0x30, "1" )
309
PORT_DIPSETTING( 0x20, "2" )
310
PORT_DIPSETTING( 0x10, "3" )
311
PORT_DIPSETTING( 0x00, "4" )
312
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Coinage) )
313
PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" )
314
PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" )
315
PORT_DIPSETTING( 0x40, "Slot A: 2 Slot B: 4" )
316
PORT_DIPSETTING( 0x00, "Slot A: 2.5 Slot B: 5" )
319
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) // inverted CDP1869 PRD, pushed
320
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF2)
321
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF3)
322
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF4)
325
static INPUT_PORTS_START( altair )
327
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // CARTUCHO
328
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // 1P
329
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) // 2P
330
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // RG
331
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF
332
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR
333
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
334
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL)
337
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
338
PORT_DIPSETTING( 0x00, "Very Conserv" )
339
PORT_DIPSETTING( 0x01, "Conserv" )
340
PORT_DIPSETTING( 0x02, "Liberal" )
341
PORT_DIPSETTING( 0x03, "Very Liberal" )
342
PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) )
343
PORT_DIPSETTING( 0x0c, "5000" )
344
PORT_DIPSETTING( 0x08, "7000" )
345
PORT_DIPSETTING( 0x04, "10000" )
346
PORT_DIPSETTING( 0x00, "14000" )
347
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) )
348
PORT_DIPSETTING( 0x30, "1" )
349
PORT_DIPSETTING( 0x20, "2" )
350
PORT_DIPSETTING( 0x10, "3" )
351
PORT_DIPSETTING( 0x00, "4" )
352
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Coinage) )
353
PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" )
354
PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" )
355
PORT_DIPSETTING( 0x40, "Slot A: 2 Slot B: 4" )
356
PORT_DIPSETTING( 0x00, "Slot A: 2.5 Slot B: 5" )
359
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // UP
360
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // DN
361
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) // IN
362
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
363
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
364
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
365
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
366
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
369
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) // inverted CDP1869 PRD, pushed
370
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF2)
371
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF3)
372
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF4)
375
static INPUT_PORTS_START( draco )
377
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
378
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
379
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
380
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
381
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
382
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
383
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
384
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(cdp1869_pcb_r, NULL)
387
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) )
388
PORT_DIPSETTING( 0x00, "Very Conserv" )
389
PORT_DIPSETTING( 0x01, "Conserv" )
390
PORT_DIPSETTING( 0x02, "Liberal" )
391
PORT_DIPSETTING( 0x03, "Very Liberal" )
392
PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) )
393
PORT_DIPSETTING( 0x0c, "5000" )
394
PORT_DIPSETTING( 0x08, "7000" )
395
PORT_DIPSETTING( 0x04, "10000" )
396
PORT_DIPSETTING( 0x00, "14000" )
397
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
398
PORT_DIPSETTING( 0x10, "3" )
399
PORT_DIPSETTING( 0x00, "5" )
400
PORT_DIPNAME( 0xe0, 0xc0, DEF_STR( Coinage ) )
401
PORT_DIPSETTING( 0x40, "Slot A: 0.5 Slot B: 0.5" )
402
PORT_DIPSETTING( 0xe0, "Slot A: 0.6 Slot B: 3" )
403
PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" )
404
PORT_DIPSETTING( 0xa0, "Slot A: 1.2 Slot B: 6" )
405
PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" )
406
PORT_DIPSETTING( 0x60, "Slot A: 1.5 Slot B: 7.5" )
407
PORT_DIPSETTING( 0x20, "Slot A: 2.5 Slot B: 3" )
408
PORT_DIPSETTING( 0x00, "Slot A: 3 Slot B: 6" )
411
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP )
412
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN )
413
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT )
414
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT )
415
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP )
416
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN )
417
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT )
418
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT )
421
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) // CDP1869 PRD, pushed
422
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF2)
423
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF3)
424
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(ef_w, (void*)COSMAC_INPUT_LINE_EF4)
429
static TIMER_CALLBACK( set_cpu_mode )
431
cidelsa_state *state = machine.driver_data<cidelsa_state>();
436
void cidelsa_state::machine_start()
438
/* register for state saving */
439
save_item(NAME(m_reset));
442
void draco_state::machine_start()
444
/* setup COP402 memory banking */
445
memory_configure_bank(machine(), "bank1", 0, 2, machine().region(COP402N_TAG)->base(), 0x400);
446
memory_set_bank(machine(), "bank1", 0);
448
/* register for state saving */
449
save_item(NAME(m_reset));
450
save_item(NAME(m_sound));
451
save_item(NAME(m_psg_latch));
456
void cidelsa_state::machine_reset()
460
machine().scheduler().timer_set(attotime::from_msec(200), FUNC(set_cpu_mode));
463
/* Machine Drivers */
465
static MACHINE_CONFIG_START( destryer, cidelsa_state )
466
/* basic system hardware */
467
MCFG_CPU_ADD(CDP1802_TAG, COSMAC, DESTRYER_CHR1)
468
MCFG_CPU_PROGRAM_MAP(destryer_map)
469
MCFG_CPU_IO_MAP(destryer_io_map)
470
MCFG_CPU_CONFIG(cidelsa_cdp1802_config)
471
MCFG_NVRAM_ADD_0FILL("nvram")
473
/* sound and video hardware */
474
MCFG_FRAGMENT_ADD(destryer_video)
477
static MACHINE_CONFIG_START( destryera, cidelsa_state )
478
/* basic system hardware */
479
MCFG_CPU_ADD(CDP1802_TAG, COSMAC, DESTRYER_CHR1)
480
MCFG_CPU_PROGRAM_MAP(destryera_map)
481
MCFG_CPU_IO_MAP(destryer_io_map)
482
MCFG_CPU_CONFIG(cidelsa_cdp1802_config)
483
MCFG_NVRAM_ADD_0FILL("nvram")
485
/* sound and video hardware */
486
MCFG_FRAGMENT_ADD(destryer_video)
489
static MACHINE_CONFIG_START( altair, cidelsa_state )
490
/* basic system hardware */
491
MCFG_CPU_ADD(CDP1802_TAG, COSMAC, ALTAIR_CHR1)
492
MCFG_CPU_PROGRAM_MAP(altair_map)
493
MCFG_CPU_IO_MAP(altair_io_map)
494
MCFG_CPU_CONFIG(cidelsa_cdp1802_config)
495
MCFG_NVRAM_ADD_0FILL("nvram")
497
/* input/output hardware */
498
MCFG_CDP1852_ADD("ic23", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in0_intf) /* clock is really tied to CDP1869 CMSEL (pin 37) */
499
MCFG_CDP1852_ADD("ic24", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in1_intf)
500
MCFG_CDP1852_ADD("ic25", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in2_intf)
501
MCFG_CDP1852_ADD("ic26", ALTAIR_CHR1 / 8, altair_cdp1852_out1_intf) /* clock is CDP1802 TPB */
503
/* sound and video hardware */
504
MCFG_FRAGMENT_ADD(altair_video)
507
static MACHINE_CONFIG_START( draco, draco_state )
508
/* basic system hardware */
509
MCFG_CPU_ADD(CDP1802_TAG, COSMAC, DRACO_CHR1)
510
MCFG_CPU_PROGRAM_MAP(draco_map)
511
MCFG_CPU_IO_MAP(draco_io_map)
512
MCFG_CPU_CONFIG(cidelsa_cdp1802_config)
513
MCFG_NVRAM_ADD_0FILL("nvram")
515
MCFG_CPU_ADD(COP402N_TAG, COP402, DRACO_SND_CHR1)
516
MCFG_CPU_PROGRAM_MAP(draco_sound_map)
517
MCFG_CPU_IO_MAP(draco_sound_io_map)
518
MCFG_CPU_CONFIG(draco_cop_intf)
520
/* input/output hardware */
521
MCFG_CDP1852_ADD("ic29", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in0_intf) /* clock is really tied to CDP1876 CMSEL (pin 32) */
522
MCFG_CDP1852_ADD("ic30", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in1_intf)
523
MCFG_CDP1852_ADD("ic31", CDP1852_CLOCK_HIGH, cidelsa_cdp1852_in2_intf)
524
MCFG_CDP1852_ADD("ic32", DRACO_CHR1 / 8, draco_cdp1852_out1_intf) /* clock is CDP1802 TPB */
526
/* sound and video hardware */
527
MCFG_FRAGMENT_ADD(draco_video)
532
ROM_START( destryer )
533
ROM_REGION( 0x2000, CDP1802_TAG, 0 )
534
ROM_LOAD( "des a 2.ic4", 0x0000, 0x0800, CRC(63749870) SHA1(a8eee4509d7a52dcf33049de221d928da3632174) )
535
ROM_LOAD( "des b 2.ic5", 0x0800, 0x0800, CRC(60604f40) SHA1(32ca95c5b38b0f4992e04d77123d217f143ae084) )
536
ROM_LOAD( "des c 2.ic6", 0x1000, 0x0800, CRC(a7cdeb7b) SHA1(a5a7748967d4ca89fb09632e1f0130ef050dbd68) )
537
ROM_LOAD( "des d 2.ic7", 0x1800, 0x0800, CRC(dbec0aea) SHA1(1d9d49009a45612ee79763781a004499313b823b) )
540
// this was destroyer2.rom in standalone emu..
541
ROM_START( destryera )
542
ROM_REGION( 0x2000, CDP1802_TAG, 0 )
543
ROM_LOAD( "destryera_1", 0x0000, 0x0800, CRC(421428e9) SHA1(0ac3a1e7f61125a1cd82145fa28cbc4b93505dc9) )
544
ROM_LOAD( "destryera_2", 0x0800, 0x0800, CRC(55dc8145) SHA1(a0066d3f3ac0ae56273485b74af90eeffea5e64e) )
545
ROM_LOAD( "destryera_3", 0x1000, 0x0800, CRC(5557bdf8) SHA1(37a9cbc5d25051d3bed7535c58aac937cd7c64e1) )
546
ROM_LOAD( "destryera_4", 0x1800, 0x0800, CRC(608b779c) SHA1(8fd6cc376c507680777553090329cc66be42a934) )
550
ROM_REGION( 0x3000, CDP1802_TAG, 0 )
551
ROM_LOAD( "alt a 1.ic7", 0x0000, 0x0800, CRC(37c26c4e) SHA1(30df7efcf5bd12dafc1cb6e894fc18e7b76d3e61) )
552
ROM_LOAD( "alt b 1.ic8", 0x0800, 0x0800, CRC(76b814a4) SHA1(e8ab1d1cbcef974d929ef8edd10008f60052a607) )
553
ROM_LOAD( "alt c 1.ic9", 0x1000, 0x0800, CRC(2569ce44) SHA1(a09597d2f8f50fab9a09ed9a59c50a2bdcba47bb) )
554
ROM_LOAD( "alt d 1.ic10", 0x1800, 0x0800, CRC(a25e6d11) SHA1(c197ff91bb9bdd04e88908259e4cde11b990e31d) )
555
ROM_LOAD( "alt e 1.ic11", 0x2000, 0x0800, CRC(e497f23b) SHA1(6094e9873df7bd88c521ddc3fd63961024687243) )
556
ROM_LOAD( "alt f 1.ic12", 0x2800, 0x0800, CRC(a06dd905) SHA1(c24ad9ff6d4e3b4e57fd75f946e8832fa00c2ea0) )
560
ROM_REGION( 0x4000, CDP1802_TAG, 0 )
561
ROM_LOAD( "dra a 1.ic10", 0x0000, 0x0800, CRC(ca127984) SHA1(46721cf42b1c891f7c88bc063a2149dd3cefea74) )
562
ROM_LOAD( "dra b 1.ic11", 0x0800, 0x0800, CRC(e4936e28) SHA1(ddbbf769994d32a6bce75312306468a89033f0aa) )
563
ROM_LOAD( "dra c 1.ic12", 0x1000, 0x0800, CRC(94480f5d) SHA1(8f49ce0f086259371e999d097a502482c83c6e9e) )
564
ROM_LOAD( "dra d 1.ic13", 0x1800, 0x0800, CRC(32075277) SHA1(2afaa92c91f554e3bdcfec6d94ef82df63032afb) )
565
ROM_LOAD( "dra e 1.ic14", 0x2000, 0x0800, CRC(cce7872e) SHA1(c956eb994452bd8a27bbc6d0e6d103e87a4a3e6e) )
566
ROM_LOAD( "dra f 1.ic15", 0x2800, 0x0800, CRC(e5927ec7) SHA1(42e0aabb6187bbb189648859fd5dddda43814526) )
567
ROM_LOAD( "dra g 1.ic16", 0x3000, 0x0800, CRC(f28546c0) SHA1(daedf1d64f94358b15580d697dd77d3c977aa22c) )
568
ROM_LOAD( "dra h 1.ic17", 0x3800, 0x0800, CRC(dce782ea) SHA1(f558096f43fb30337bc4a527169718326c265c2c) )
570
ROM_REGION( 0x800, COP402N_TAG, 0 )
571
ROM_LOAD( "dra s 1.ic4", 0x0000, 0x0800, CRC(292a57f8) SHA1(b34a189394746d77c3ee669db24109ee945c3be7) )
576
GAME( 1980, destryer, 0, destryer, destryer, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
577
GAME( 1980, destryera,destryer, destryera,destryer, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
578
GAME( 1981, altair, 0, altair, altair, 0, ROT90, "Cidelsa", "Altair", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
579
GAME( 1981, draco, 0, draco, draco, 0, ROT90, "Cidelsa", "Draco", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )