Previous 199869 Revisions Next

r19200 Wednesday 28th November, 2012 at 17:20:33 UTC by Angelo Salese
Added skeleton device for Acorn Archimedes KART device
[src/emu]emu.mak
[src/emu/machine]aakart.c* aakart.h*
[src/mame/drivers]aristmk5.c ertictac.c
[src/mame/etc]template_device.h
[src/mame/includes]archimds.h
[src/mame/machine]archimds.c
[src/mess/drivers]a310.c pc9801.c

trunk/src/mess/drivers/a310.c
r19199r19200
6262#include "sound/dac.h"
6363#include "includes/archimds.h"
6464#include "machine/i2cmem.h"
65#include "machine/aakart.h"
6566#include "machine/ram.h"
6667
6768
r19199r19200
272273   MCFG_CPU_ADD("maincpu", ARM, 8000000)        /* 8 MHz */
273274   MCFG_CPU_PROGRAM_MAP(a310_mem)
274275
275
276   MCFG_AAKART_ADD("kart", 8000000) // TODO: frequency
276277   MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
277278
278279   /* video hardware */
trunk/src/mess/drivers/pc9801.c
r19199r19200
13911391      if((data & 0xf0) == 0x20)
13921392         m_vram_bank = (data & 2) >> 1;
13931393      else
1394      {
13941395         printf("Unknown EMS RAM setting %02x\n",data);
1396      }
13951397   }
13961398}
13971399
r19199r19200
14451447   else if(offset >= 0x000a4000 && offset <= 0x000a4fff)                   { return pc9801rs_knjram_r(space,offset & 0xfff);     }
14461448   else if(offset >= 0x000a8000 && offset <= 0x000bffff)                   { return pc9801_gvram_r(space,offset-0xa8000);        }
14471449   else if(offset >= 0x000e0000 && offset <= 0x000fffff)                   { return pc9801rs_ipl_r(space,offset & 0x1ffff);      }
1448   else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { return pc9801rs_ex_wram_r(space,offset-0x00100000); }
1450   else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1)      { return pc9801rs_ex_wram_r(space,offset-0x00100000); }
14491451   else if(offset >= 0xfffe0000 && offset <= 0xffffffff)                   { return pc9801rs_ipl_r(space,offset & 0x1ffff);      }
14501452
14511453   //printf("%08x\n",offset);
trunk/src/mame/machine/archimds.c
r19199r19200
3939
4040#define IOC_LOG 0
4141
42/* TODO: fix pending irqs */
4243void archimedes_state::archimedes_request_irq_a(int mask)
4344{
4445   m_ioc_regs[IRQ_STATUS_A] |= mask;
r19199r19200
460461      }
461462
462463      case KART:   // keyboard read
463         archimedes_request_irq_b(ARCHIMEDES_IRQB_KBD_XMIT_EMPTY);
464         break;
464         //archimedes_request_irq_b(ARCHIMEDES_IRQB_KBD_XMIT_EMPTY);
465         return m_kart->read(space,0);
465466
466467      case IRQ_STATUS_A:
467468         return (m_ioc_regs[IRQ_STATUS_A] & 0x7f) | 0x80; // Force IRQ is always '1'
r19199r19200
526527         break;
527528
528529      case KART:
529         #if 0
530         if(data == 0x0d)
531            printf("\n");
532         else
533            printf("%c",data);
534         #endif
530         m_kart->write(space,0,data);
535531         break;
536532
537533      case IRQ_MASK_A:
trunk/src/mame/includes/archimds.h
r19199r19200
77#ifndef _ARCHIMEDES_H_
88#define _ARCHIMEDES_H_
99
10#include "machine/aakart.h"
11
1012// interrupt definitions.  these are for the real Archimedes computer - arcade
1113// and gambling knockoffs likely are a bit different.
1214
r19199r19200
3840{
3941public:
4042   archimedes_state(const machine_config &mconfig, device_type type, const char *tag)
41      : driver_device(mconfig, type, tag) { }
43      : driver_device(mconfig, type, tag),
44      m_kart(*this, "kart")
45      { }
4246
47   optional_device<aakart_device> m_kart;
4348   void archimedes_init();
4449   void archimedes_reset();
4550   void archimedes_driver_init();
trunk/src/mame/etc/template_device.h
r19199r19200
66
77#pragma once
88
9#ifndef __xxxDEV_H__
10#define __xxxDEV_H__
9#ifndef __XXXDEV_H__
10#define __XXXDEV_H__
1111
1212
1313
trunk/src/mame/drivers/aristmk5.c
r19199r19200
426426    MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(2))   /* 1.6 - 2 seconds */
427427
428428//  MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
429//   MCFG_AAKART_ADD("kart", 12000000) // TODO: frequency
429430
430431   MCFG_SCREEN_ADD("screen", RASTER)
431432   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/mame/drivers/ertictac.c
r19199r19200
2626#include "sound/dac.h"
2727#include "includes/archimds.h"
2828#include "machine/i2cmem.h"
29#include "machine/aakart.h"
2930
3031
3132class ertictac_state : public archimedes_state
r19199r19200
229230   MCFG_CPU_PROGRAM_MAP(ertictac_map)
230231   MCFG_CPU_PERIODIC_INT_DRIVER(ertictac_state, ertictac_podule_irq, 60) // FIXME: timing of this
231232
232
233233   MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)
234//   MCFG_AAKART_ADD("kart", XTAL_24MHz/3) // TODO: frequency
234235
235236   MCFG_SCREEN_ADD("screen", RASTER)
236237   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/emu/emu.mak
r19199r19200
159159   $(EMUMACHINE)/8042kbdc.o   \
160160   $(EMUMACHINE)/8237dma.o      \
161161   $(EMUMACHINE)/8257dma.o      \
162   $(EMUMACHINE)/aakart.o      \
162163   $(EMUMACHINE)/adc0808.o      \
163164   $(EMUMACHINE)/adc083x.o      \
164165   $(EMUMACHINE)/adc1038.o      \
trunk/src/emu/machine/aakart.c
r0r19200
1/***************************************************************************
2
3Acorn Archimedes KART interface
4
5***************************************************************************/
6
7#include "emu.h"
8#include "machine/aakart.h"
9
10
11
12//**************************************************************************
13//  GLOBAL VARIABLES
14//**************************************************************************
15
16// device type definition
17const device_type AAKART = &device_creator<aakart_device>;
18
19
20//**************************************************************************
21//  LIVE DEVICE
22//**************************************************************************
23
24//-------------------------------------------------
25//  aakart_device - constructor
26//-------------------------------------------------
27
28aakart_device::aakart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
29   : device_t(mconfig, AAKART, "aakart", tag, owner, clock)
30{
31
32}
33
34
35//-------------------------------------------------
36//  device_validity_check - perform validity checks
37//  on this device
38//-------------------------------------------------
39
40void aakart_device::device_validity_check(validity_checker &valid) const
41{
42}
43
44
45//-------------------------------------------------
46//  device_start - device-specific startup
47//-------------------------------------------------
48
49void aakart_device::device_start()
50{
51
52}
53
54
55//-------------------------------------------------
56//  device_reset - device-specific reset
57//-------------------------------------------------
58
59void aakart_device::device_reset()
60{
61}
62
63
64//**************************************************************************
65//  READ/WRITE HANDLERS
66//**************************************************************************
67
68READ8_MEMBER( aakart_device::read )
69{
70   return 0;
71}
72
73WRITE8_MEMBER( aakart_device::write )
74{
75}
trunk/src/emu/machine/aakart.h
r0r19200
1/***************************************************************************
2
3Acorn Archimedes KART interface
4
5***************************************************************************/
6
7#pragma once
8
9#ifndef __AAKARTDEV_H__
10#define __AAKARTDEV_H__
11
12
13
14//**************************************************************************
15//  INTERFACE CONFIGURATION MACROS
16//**************************************************************************
17
18#define MCFG_AAKART_ADD(_tag,_freq) \
19   MCFG_DEVICE_ADD(_tag, AAKART, _freq) \
20
21
22//**************************************************************************
23//  TYPE DEFINITIONS
24//**************************************************************************
25
26// ======================> aakart_device
27
28class aakart_device : public device_t
29{
30public:
31   // construction/destruction
32   aakart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
33
34   // I/O operations
35   DECLARE_WRITE8_MEMBER( write );
36   DECLARE_READ8_MEMBER( read );
37
38protected:
39   // device-level overrides
40   virtual void device_validity_check(validity_checker &valid) const;
41   virtual void device_start();
42   virtual void device_reset();
43};
44
45
46// device type definition
47extern const device_type AAKART;
48
49
50
51//**************************************************************************
52//  GLOBAL VARIABLES
53//**************************************************************************
54
55
56
57#endif

Previous 199869 Revisions Next


© 1997-2024 The MAME Team