Previous 199869 Revisions Next

r17665 Wednesday 5th September, 2012 at 21:50:02 UTC by smf
made S1410 device act as a SCSIHD with the custom commands, added D9060HD & ACB4070 devices to do the same thing [smf]
[src/emu/machine]scsibus.c scsibus.h scsihd.c scsihd.h
[src/mess]mess.mak
[src/mess/drivers]rmnimbus.c tdv2324.c v1050.c
[src/mess/includes]tdv2324.h
[src/mess/machine]acb4070.c* acb4070.h* d9060.c d9060hd.c* d9060hd.h* lux4105.c s1410.c s1410.h

trunk/src/emu/machine/scsihd.c
r17664r17665
1818{
1919}
2020
21scsihd_device::scsihd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock) :
22   scsidev_device(mconfig, type, name, tag, owner, clock)
23{
24}
25
2126void scsihd_device::device_start()
2227{
2328   save_item( NAME( lba ) );
trunk/src/emu/machine/scsihd.h
r17664r17665
1515public:
1616   // construction/destruction
1717   scsihd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
18   scsihd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
1819   virtual machine_config_constructor device_mconfig_additions() const;
1920
2021   virtual void SetDevice( void *device );
trunk/src/emu/machine/scsibus.c
r17664r17665
321321         dataout_timer->adjust(attotime::from_seconds(FORMAT_UNIT_TIMEOUT));
322322         break;
323323
324      // Check track format Xebec
325      case SCSI_CMD_CHECK_TRACK_FORMAT:
326         LOG(1,"SCSIBUS: check track format\n");
327         command_local=1;
328         xfer_count=0;
329         data_last=xfer_count;
330         bytes_left=0;
331         devices[last_id]->SetPhase(SCSI_PHASE_STATUS);
332         break;
333
334      // Setup drive parameters Xebec
335      case SCSI_CMD_INIT_DRIVE_PARAMS:
336         LOG(1,"SCSIBUS: init_drive_params: Xebec S1410\n");
337         command_local=1;
338         xfer_count=XEBEC_PARAMS_SIZE;
339         data_last=xfer_count;
340         bytes_left=0;
341         devices[last_id]->SetPhase(SCSI_PHASE_DATAOUT);
342         break;
343
344      // Format bad track Xebec
345      case SCSI_CMD_FORMAT_ALT_TRACK:
346         LOG(1,"SCSIBUS: format_alt_track: Xebec S1410\n");
347         command_local=1;
348         xfer_count=XEBEC_ALT_TRACK_SIZE;
349         data_last=xfer_count;
350         bytes_left=0;
351         devices[last_id]->SetPhase(SCSI_PHASE_DATAOUT);
352         break;
353
354      // Write buffer Xebec S1410 specific
355      case SCSI_CMD_WRITE_SEC_BUFFER:
356         LOG(1,"SCSIBUS: write_sector_buffer: Xebec S1410\n");
357         command_local=1;
358         xfer_count=XEBEC_SECTOR_BUFFER_SIZE;
359         data_last=xfer_count;
360         bytes_left=0;
361         devices[last_id]->SetPhase(SCSI_PHASE_DATAOUT);
362         break;
363
364      // Read buffer Xebec S1410 specific
365      case SCSI_CMD_READ_SEC_BUFFER:
366         LOG(1,"SCSIBUS: read_sector_buffer: Xebec S1410\n");
367         command_local=1;
368         xfer_count=XEBEC_SECTOR_BUFFER_SIZE;
369         data_last=xfer_count;
370         bytes_left=0;
371         devices[last_id]->SetPhase(SCSI_PHASE_DATAIN);
372         break;
373
374      // Write buffer, Adaptec ACB40x0 specific
375      case SCSI_CMD_WRITE_DATA_BUFFER:
376         LOG(1,"SCSIBUS: write_buffer: Adaptec ACB40x0\n");
377         command_local=1;
378         xfer_count=ADAPTEC_DATA_BUFFER_SIZE;
379         data_last=xfer_count;
380         bytes_left=0;
381         devices[last_id]->SetPhase(SCSI_PHASE_DATAOUT);
382         break;
383
384      // Read buffer, Adaptec ACB40x0 specific
385      case SCSI_CMD_READ_DATA_BUFFER:
386         LOG(1,"SCSIBUS: read_data_buffer: Adaptec ACB40x0\n");
387         command_local=1;
388         xfer_count=ADAPTEC_DATA_BUFFER_SIZE;
389         data_last=xfer_count;
390         bytes_left=0;
391         devices[last_id]->SetPhase(SCSI_PHASE_DATAIN);
392         break;
393
394324      // Send diagnostic info
395325      case SCSI_CMD_SEND_DIAGNOSTIC:
396326         LOG(1,"SCSIBUS: send_diagnostic\n");
r17664r17665
402332         break;
403333
404334      case SCSI_CMD_SEARCH_DATA_EQUAL:
405         LOG(1,"SCSIBUS: Search_data_equal ACB40x0\n");
335         LOG(1,"SCSIBUS: Search_data_equaln");
406336         command_local=1;
407337         xfer_count=0;
408338         data_last=xfer_count;
r17664r17665
444374         bytes_left=0;
445375         devices[last_id]->SetPhase(SCSI_PHASE_DATAIN);
446376         break;
447
448      // Xebec S1410
449      case SCSI_CMD_RAM_DIAGS:
450      case SCSI_CMD_DRIVE_DIAGS:
451      case SCSI_CMD_CONTROLER_DIAGS:
452         LOG(1,"SCSIBUS: Xebec RAM, disk or Controler diags [%02X]\n",command[0]);
453         command_local=1;
454         xfer_count=0;
455         data_last=xfer_count;
456         bytes_left=0;
457         devices[last_id]->SetPhase(SCSI_PHASE_STATUS);
458         break;
459
460      // Commodore D9060/9090
461      case SCSI_CMD_PHYSICAL_DEVICE_ID:
462         LOG(1,"SCSIBUS: physical device ID\n");
463         command_local=1;
464         xfer_count=0;
465         data_last=xfer_count;
466         bytes_left=0;
467         devices[last_id]->SetPhase(SCSI_PHASE_STATUS);
468         break;
469377   }
470378
471379
r17664r17665
527435
528436   switch (command[0])
529437   {
530      case SCSI_CMD_INIT_DRIVE_PARAMS:
531         tracks=((buffer[0]<<8)+buffer[1]);
532         capacity=(tracks * buffer[2]) * 17;
533         LOG(1,"Tracks=%d, Heads=%d\n",tracks,buffer[2]);
534         LOG(1,"Setting disk capacity to %d blocks\n",capacity);
535         //debugger_break(device->machine());
536         break;
537
538438      case SCSI_CMD_MODE_SELECT:
539439         sense=(adaptec_sense_t *)buffer;
540440         tracks=(sense->cylinder_count[0]<<8)+sense->cylinder_count[1];
r17664r17665
757657         scsi_out_line_change(SCSI_LINE_REQ,1);
758658         scsi_out_line_change(SCSI_LINE_BSY,1);
759659         LOG(1,"SCSIBUS: done\n\n");
760         //if (IS_COMMAND(SCSI_CMD_READ_CAPACITY))
761         //  debugger_break(device->machine());
762660         break;
763661
764662      case SCSI_PHASE_COMMAND:
trunk/src/emu/machine/scsibus.h
r17664r17665
6464#define CMD_BUF_SIZE             32
6565#define ADAPTEC_BUF_SIZE         1024
6666
67// scsidev
6768#define SCSI_CMD_TEST_READY         0x00
6869#define SCSI_CMD_RECALIBRATE      0x01
6970#define SCSI_CMD_REQUEST_SENSE      0x03
70#define SCSI_CMD_FORMAT_UNIT       0x04
71#define SCSI_CMD_CHECK_TRACK_FORMAT   0x05
72#define SCSI_CMD_INIT_DRIVE_PARAMS   0x0C
73#define SCSI_CMD_FORMAT_ALT_TRACK   0x0E
74#define SCSI_CMD_WRITE_SEC_BUFFER   0x0F
75#define SCSI_CMD_READ_SEC_BUFFER   0x10
76#define SCSI_COMMAND_INQUIRY       0x12
77#define SCSI_CMD_WRITE_DATA_BUFFER   0x13
78#define SCSI_CMD_READ_DATA_BUFFER   0x14
7971#define SCSI_CMD_MODE_SELECT       0x15
8072#define SCSI_CMD_SEND_DIAGNOSTIC   0x1D
81#define SCSI_CMD_READ_CAPACITY     0x25
82#define SCSI_CMD_SEARCH_DATA_EQUAL   0x31
83#define SCSI_CMD_READ_DEFECT       0x37
8473#define SCSI_CMD_BUFFER_WRITE      0x3B
8574#define SCSI_CMD_BUFFER_READ       0x3C
8675
87// Xebec SASI
88#define SCSI_CMD_RAM_DIAGS         0xE0
89#define SCSI_CMD_DRIVE_DIAGS      0xE3
90#define SCSI_CMD_CONTROLER_DIAGS   0xE4
76// scsihd
77#define SCSI_CMD_FORMAT_UNIT       0x04
78#define SCSI_CMD_SEARCH_DATA_EQUAL   0x31
79#define SCSI_CMD_READ_DEFECT       0x37
9180
92// Commodore D9060/9090 SASI
93#define SCSI_CMD_PHYSICAL_DEVICE_ID   0xc0
9481
95#define RW_BUFFER_HEAD_BYTES       0x04
96
97#define ADAPTEC_DATA_BUFFER_SIZE   0x0400
98#define XEBEC_SECTOR_BUFFER_SIZE   0x0200
99
100#define XEBEC_PARAMS_SIZE         0x08
101#define XEBEC_ALT_TRACK_SIZE      0x03
102
10382#define IS_COMMAND(cmd)            (command[0]==cmd)
10483#define IS_READ_COMMAND()          ((command[0]==0x08) || (command[0]==0x28) || (command[0]==0xa8))
10584#define IS_WRITE_COMMAND()         ((command[0]==0x0a) || (command[0]==0x2a))
trunk/src/mess/machine/s1410.c
r17664r17665
193193   return MACHINE_CONFIG_NAME( s1410 );
194194}
195195
196
197
198196//**************************************************************************
199197//  LIVE DEVICE
200198//**************************************************************************
r17664r17665
204202//-------------------------------------------------
205203
206204s1410_device::s1410_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
207    : device_t(mconfig, S1410, "Xebec S1410", tag, owner, clock)
205    : scsihd_device(mconfig, S1410, "Xebec S1410", tag, owner, clock)
208206{
209207}
210208
209#define S1410_CMD_CHECK_TRACK_FORMAT ( 0x05 )
210#define S1410_CMD_INIT_DRIVE_PARAMS ( 0x0c )
211#define S1410_CMD_FORMAT_ALT_TRACK ( 0x0E )
212#define S1410_CMD_WRITE_SEC_BUFFER ( 0x0F )
213#define S1410_CMD_READ_SEC_BUFFER ( 0x10 )
214#define S1410_CMD_RAM_DIAGS ( 0xe0 )
215#define S1410_CMD_DRIVE_DIAGS ( 0xe3 )
216#define S1410_CMD_CONTROLER_DIAGS ( 0xe4 )
211217
212//-------------------------------------------------
213//  device_start - device-specific startup
214//-------------------------------------------------
218#define TRANSFERLENGTH_INIT_DRIVE_PARAMS ( 0x08 )
219#define TRANSFERLENGTH_FORMAT_ALT_TRACK ( 0x03 )
220#define TRANSFERLENGTH_SECTOR_BUFFER ( 0x0200 )
215221
216void s1410_device::device_start()
222void s1410_device::ExecCommand( int *transferLength )
217223{
224   UINT8 *command;
225   int commandLength;
226   GetCommand( &command, &commandLength );
227
228   switch( command[ 0 ] )
229   {
230   case S1410_CMD_INIT_DRIVE_PARAMS:
231      SetPhase(SCSI_PHASE_DATAOUT);
232      *transferLength = TRANSFERLENGTH_INIT_DRIVE_PARAMS;
233      break;
234
235   case S1410_CMD_FORMAT_ALT_TRACK:
236      SetPhase(SCSI_PHASE_DATAOUT);
237      *transferLength = TRANSFERLENGTH_FORMAT_ALT_TRACK;
238      break;
239
240   case S1410_CMD_WRITE_SEC_BUFFER:
241      SetPhase(SCSI_PHASE_DATAOUT);
242      *transferLength = TRANSFERLENGTH_SECTOR_BUFFER;
243      break;
244
245   case S1410_CMD_READ_SEC_BUFFER:
246      SetPhase(SCSI_PHASE_DATAIN);
247      *transferLength = TRANSFERLENGTH_SECTOR_BUFFER;
248      break;
249
250   case S1410_CMD_CHECK_TRACK_FORMAT:
251   case S1410_CMD_RAM_DIAGS:
252   case S1410_CMD_DRIVE_DIAGS:
253   case S1410_CMD_CONTROLER_DIAGS:
254      SetPhase(SCSI_PHASE_STATUS);
255      *transferLength = 0;
256      break;
257
258   default:
259      scsihd_device::ExecCommand( transferLength );
260      break;
261   }
218262}
219263
264void s1410_device::WriteData( UINT8 *data, int dataLength )
265{
266   UINT8 *command;
267   int commandLength;
268   GetCommand( &command, &commandLength );
220269
221//-------------------------------------------------
222//  device_reset - device-specific reset
223//-------------------------------------------------
270   switch( command[ 0 ] )
271   {
272   case S1410_CMD_INIT_DRIVE_PARAMS:
273      {
274         UINT16 tracks=((data[0]<<8)+data[1]);
275         UINT8 heads = data[2];
276         UINT32 capacity=(tracks * heads) * 17;
277         logerror("S1410_CMD_INIT_DRIVE_PARAMS Tracks=%d, Heads=%d, Capacity=%d\n",tracks,heads,capacity);
278      }
279      break;
224280
225void s1410_device::device_reset()
226{
281   default:
282      scsihd_device::WriteData( data, dataLength );
283      break;
284   }
227285}
trunk/src/mess/machine/s1410.h
r17664r17665
1313#define __S1410__
1414
1515#include "emu.h"
16#include "machine/scsihd.h"
1617
17
18
19//**************************************************************************
20//  INTERFACE CONFIGURATION MACROS
21//**************************************************************************
22
23#define MCFG_S1410_ADD( _tag) \
24    MCFG_DEVICE_ADD(_tag, S1410, 0)
25
26
27
28//**************************************************************************
29//  TYPE DEFINITIONS
30//**************************************************************************
31
32// ======================> s1410_interface
33
34struct s1410_interface
18class s1410_device  : public scsihd_device
3519{
36};
37
38// ======================> s1410_device
39
40class s1410_device :  public device_t,
41                      public s1410_interface
42{
4320public:
44    // construction/destruction
45    s1410_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
21   // construction/destruction
22   s1410_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
23
4624   // optional information overrides
4725   virtual const rom_entry *device_rom_region() const;
4826   virtual machine_config_constructor device_mconfig_additions() const;
4927
50protected:
51    // device-level overrides
52    virtual void device_start();
53    virtual void device_reset();
54    virtual void device_config_complete();
28   virtual void ExecCommand( int *transferLength );
29   virtual void WriteData( UINT8 *data, int dataLength );
5530
56private:
31protected:
32   // device-level overrides
33   virtual void device_config_complete();
5734};
5835
5936
6037// device type definition
6138extern const device_type S1410;
6239
63
64
6540#endif
trunk/src/mess/machine/lux4105.c
r17664r17665
8181
8282static MACHINE_CONFIG_FRAGMENT( luxor_4105 )
8383   MCFG_SCSIBUS_ADD(SASIBUS_TAG, sasi_intf)
84   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
85   MCFG_S1410_ADD("s1410")
84   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", S1410, SCSI_ID_0)
8685MACHINE_CONFIG_END
8786
8887
trunk/src/mess/machine/d9060.c
r17664r17665
88**********************************************************************/
99
1010#include "d9060.h"
11#include "machine/scsihd.h"
11#include "machine/d9060hd.h"
1212
1313
1414
r17664r17665
460460   MCFG_VIA6522_ADD(M6522_TAG, XTAL_4MHz/4, via_intf)
461461
462462   MCFG_SCSIBUS_ADD(SASIBUS_TAG, sasi_intf)
463   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
463   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", D9060HD, SCSI_ID_0)
464464MACHINE_CONFIG_END
465465
466466
trunk/src/mess/machine/acb4070.c
r0r17665
1/*
2 * ACB4070 + RLL drive
3 *
4 */
5
6#include "emu.h"
7#include "machine/acb4070.h"
8
9// device type definition
10const device_type ACB4070 = &device_creator<acb4070_device>;
11
12acb4070_device::acb4070_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
13   : scsihd_device(mconfig, ACB4070, "ACB4070", tag, owner, clock)
14{
15}
16
17#define ACB4070_CMD_WRITE_DATA_BUFFER ( 0x13 )
18#define ACB4070_CMD_READ_DATA_BUFFER ( 0x14 )
19
20#define TRANSFERLENGTH_DATA_BUFFER   0x0400
21
22void acb4070_device::ExecCommand( int *transferLength )
23{
24   UINT8 *command;
25   int commandLength;
26   GetCommand( &command, &commandLength );
27
28   switch( command[ 0 ] )
29   {
30   case ACB4070_CMD_WRITE_DATA_BUFFER:
31      SetPhase( SCSI_PHASE_DATAOUT );
32      *transferLength = TRANSFERLENGTH_DATA_BUFFER;
33      break;
34
35   case ACB4070_CMD_READ_DATA_BUFFER:
36      SetPhase( SCSI_PHASE_DATAIN );
37      *transferLength = TRANSFERLENGTH_DATA_BUFFER;
38      break;
39
40   default:
41      scsihd_device::ExecCommand( transferLength );
42      break;
43   }
44}
trunk/src/mess/machine/acb4070.h
r0r17665
1#pragma once
2
3#ifndef __ACB4070__
4#define __ACB4070__
5
6#include "machine/scsihd.h"
7
8class acb4070_device : public scsihd_device
9{
10public:
11   // construction/destruction
12   acb4070_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
13
14   virtual void ExecCommand( int *transferLength );
15};
16
17// device type definition
18extern const device_type ACB4070;
19
20#endif
trunk/src/mess/machine/d9060hd.c
r0r17665
1/*
2 * D9060 - SASI + TANDON TM602S
3 *
4 */
5
6#include "emu.h"
7#include "machine/d9060hd.h"
8
9// device type definition
10const device_type D9060HD = &device_creator<d9060hd_device>;
11
12d9060hd_device::d9060hd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
13   : scsihd_device(mconfig, D9060HD, "D9060HD", tag, owner, clock)
14{
15}
16
17#define D9060HD_CMD_PHYSICAL_DEVICE_ID ( 0xc0 )
18#define D9060HD_CMD_DRIVE_DIAGS ( 0xe3 )
19
20void d9060hd_device::ExecCommand( int *transferLength )
21{
22   UINT8 *command;
23   int commandLength;
24   GetCommand( &command, &commandLength );
25
26   switch( command[ 0 ] )
27   {
28   case D9060HD_CMD_PHYSICAL_DEVICE_ID:
29   case D9060HD_CMD_DRIVE_DIAGS:
30      SetPhase(SCSI_PHASE_STATUS);
31      *transferLength = 0;
32      break;
33
34   default:
35      scsihd_device::ExecCommand( transferLength );
36      break;
37   }
38}
trunk/src/mess/machine/d9060hd.h
r0r17665
1#pragma once
2
3#ifndef __D9060HD__
4#define __D9060HD__
5
6#include "machine/scsihd.h"
7
8class d9060hd_device : public scsihd_device
9{
10public:
11   // construction/destruction
12   d9060hd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
13
14   virtual void ExecCommand( int *transferLength );
15};
16
17// device type definition
18extern const device_type D9060HD;
19
20#endif
trunk/src/mess/includes/tdv2324.h
r17664r17665
1313#include "machine/pit8253.h"
1414#include "machine/pic8259.h"
1515#include "machine/ram.h"
16#include "machine/s1410.h"
1716#include "machine/wd17xx.h"
1817#include "machine/z80dart.h"
1918#include "video/tms9927.h"
trunk/src/mess/drivers/v1050.c
r17664r17665
11131113
11141114   // SASI bus
11151115   MCFG_SCSIBUS_ADD(SASIBUS_TAG, sasi_intf)
1116   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
1117   MCFG_S1410_ADD("s1410")
1116   MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", S1410, SCSI_ID_0)
11181117
11191118   MCFG_TIMER_ADD(TIMER_ACK_TAG, sasi_ack_tick)
11201119   MCFG_TIMER_ADD(TIMER_RST_TAG, sasi_rst_tick)
trunk/src/mess/drivers/tdv2324.c
r17664r17665
434434   MCFG_Z80SIO2_ADD(MK3887N4_TAG, 8000000/2, sio_intf)
435435   MCFG_FD1797_ADD(FD1797PL02_TAG, fdc_intf)
436436   MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, tdv2324_floppy_interface)
437   MCFG_S1410_ADD("s1410") // 104521-F ROM
438437
439438   // internal ram
440439   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/rmnimbus.c
r17664r17665
1616#include "includes/rmnimbus.h"
1717#include "machine/er59256.h"
1818#include "machine/scsihd.h"
19#include "machine/s1410.h"
20#include "machine/acb4070.h"
1921#include "machine/6522via.h"
2022#include "machine/ctronics.h"
2123#include "sound/ay8910.h"
r17664r17665
320322   MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(nimbus_floppy_interface)
321323
322324   MCFG_SCSIBUS_ADD(SCSIBUS_TAG, scsibus_config)
323   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)
324   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk1", SCSIHD, SCSI_ID_1)
325   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", ACB4070, SCSI_ID_0)
326   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk1", S1410, SCSI_ID_1)
325327   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk2", SCSIHD, SCSI_ID_2)
326328   MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk3", SCSIHD, SCSI_ID_3)
327329
trunk/src/mess/mess.mak
r17664r17665
894894   $(MESS_MACHINE)/c2040.o      \
895895   $(MESS_MACHINE)/c8280.o      \
896896   $(MESS_MACHINE)/d9060.o      \
897   $(MESS_MACHINE)/d9060hd.o   \
897898   $(MESS_MACHINE)/softbox.o   \
898899   $(MESS_MACHINE)/serialbox.o   \
899900   $(MESS_MACHINE)/cmdhd.o   \
r17664r17665
15181519   $(MESS_DRIVERS)/rmnimbus.o   \
15191520   $(MESS_MACHINE)/rmnimbus.o  \
15201521   $(MESS_VIDEO)/rmnimbus.o    \
1522   $(MESS_MACHINE)/acb4070.o   \
15211523
15221524$(MESSOBJ)/robotron.a:         \
15231525   $(MESS_DRIVERS)/a5105.o      \

Previous 199869 Revisions Next


© 1997-2024 The MAME Team