trunk/src/mess/drivers/a310.c
| r19199 | r19200 | |
| 62 | 62 | #include "sound/dac.h" |
| 63 | 63 | #include "includes/archimds.h" |
| 64 | 64 | #include "machine/i2cmem.h" |
| 65 | #include "machine/aakart.h" |
| 65 | 66 | #include "machine/ram.h" |
| 66 | 67 | |
| 67 | 68 | |
| r19199 | r19200 | |
| 272 | 273 | MCFG_CPU_ADD("maincpu", ARM, 8000000) /* 8 MHz */ |
| 273 | 274 | MCFG_CPU_PROGRAM_MAP(a310_mem) |
| 274 | 275 | |
| 275 | | |
| 276 | MCFG_AAKART_ADD("kart", 8000000) // TODO: frequency |
| 276 | 277 | MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface) |
| 277 | 278 | |
| 278 | 279 | /* video hardware */ |
trunk/src/mess/drivers/pc9801.c
| r19199 | r19200 | |
| 1391 | 1391 | if((data & 0xf0) == 0x20) |
| 1392 | 1392 | m_vram_bank = (data & 2) >> 1; |
| 1393 | 1393 | else |
| 1394 | { |
| 1394 | 1395 | printf("Unknown EMS RAM setting %02x\n",data); |
| 1396 | } |
| 1395 | 1397 | } |
| 1396 | 1398 | } |
| 1397 | 1399 | |
| r19199 | r19200 | |
| 1445 | 1447 | else if(offset >= 0x000a4000 && offset <= 0x000a4fff) { return pc9801rs_knjram_r(space,offset & 0xfff); } |
| 1446 | 1448 | else if(offset >= 0x000a8000 && offset <= 0x000bffff) { return pc9801_gvram_r(space,offset-0xa8000); } |
| 1447 | 1449 | 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); } |
| 1449 | 1451 | else if(offset >= 0xfffe0000 && offset <= 0xffffffff) { return pc9801rs_ipl_r(space,offset & 0x1ffff); } |
| 1450 | 1452 | |
| 1451 | 1453 | //printf("%08x\n",offset); |
trunk/src/mame/machine/archimds.c
| r19199 | r19200 | |
| 39 | 39 | |
| 40 | 40 | #define IOC_LOG 0 |
| 41 | 41 | |
| 42 | /* TODO: fix pending irqs */ |
| 42 | 43 | void archimedes_state::archimedes_request_irq_a(int mask) |
| 43 | 44 | { |
| 44 | 45 | m_ioc_regs[IRQ_STATUS_A] |= mask; |
| r19199 | r19200 | |
| 460 | 461 | } |
| 461 | 462 | |
| 462 | 463 | 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); |
| 465 | 466 | |
| 466 | 467 | case IRQ_STATUS_A: |
| 467 | 468 | return (m_ioc_regs[IRQ_STATUS_A] & 0x7f) | 0x80; // Force IRQ is always '1' |
| r19199 | r19200 | |
| 526 | 527 | break; |
| 527 | 528 | |
| 528 | 529 | 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); |
| 535 | 531 | break; |
| 536 | 532 | |
| 537 | 533 | case IRQ_MASK_A: |
trunk/src/mame/includes/archimds.h
| r19199 | r19200 | |
| 7 | 7 | #ifndef _ARCHIMEDES_H_ |
| 8 | 8 | #define _ARCHIMEDES_H_ |
| 9 | 9 | |
| 10 | #include "machine/aakart.h" |
| 11 | |
| 10 | 12 | // interrupt definitions. these are for the real Archimedes computer - arcade |
| 11 | 13 | // and gambling knockoffs likely are a bit different. |
| 12 | 14 | |
| r19199 | r19200 | |
| 38 | 40 | { |
| 39 | 41 | public: |
| 40 | 42 | 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 | { } |
| 42 | 46 | |
| 47 | optional_device<aakart_device> m_kart; |
| 43 | 48 | void archimedes_init(); |
| 44 | 49 | void archimedes_reset(); |
| 45 | 50 | void archimedes_driver_init(); |
trunk/src/mame/drivers/ertictac.c
| r19199 | r19200 | |
| 26 | 26 | #include "sound/dac.h" |
| 27 | 27 | #include "includes/archimds.h" |
| 28 | 28 | #include "machine/i2cmem.h" |
| 29 | #include "machine/aakart.h" |
| 29 | 30 | |
| 30 | 31 | |
| 31 | 32 | class ertictac_state : public archimedes_state |
| r19199 | r19200 | |
| 229 | 230 | MCFG_CPU_PROGRAM_MAP(ertictac_map) |
| 230 | 231 | MCFG_CPU_PERIODIC_INT_DRIVER(ertictac_state, ertictac_podule_irq, 60) // FIXME: timing of this |
| 231 | 232 | |
| 232 | | |
| 233 | 233 | MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface) |
| 234 | // MCFG_AAKART_ADD("kart", XTAL_24MHz/3) // TODO: frequency |
| 234 | 235 | |
| 235 | 236 | MCFG_SCREEN_ADD("screen", RASTER) |
| 236 | 237 | MCFG_SCREEN_REFRESH_RATE(60) |
trunk/src/emu/machine/aakart.c
| r0 | r19200 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Acorn 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 |
| 17 | const device_type AAKART = &device_creator<aakart_device>; |
| 18 | |
| 19 | |
| 20 | //************************************************************************** |
| 21 | // LIVE DEVICE |
| 22 | //************************************************************************** |
| 23 | |
| 24 | //------------------------------------------------- |
| 25 | // aakart_device - constructor |
| 26 | //------------------------------------------------- |
| 27 | |
| 28 | aakart_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 | |
| 40 | void aakart_device::device_validity_check(validity_checker &valid) const |
| 41 | { |
| 42 | } |
| 43 | |
| 44 | |
| 45 | //------------------------------------------------- |
| 46 | // device_start - device-specific startup |
| 47 | //------------------------------------------------- |
| 48 | |
| 49 | void aakart_device::device_start() |
| 50 | { |
| 51 | |
| 52 | } |
| 53 | |
| 54 | |
| 55 | //------------------------------------------------- |
| 56 | // device_reset - device-specific reset |
| 57 | //------------------------------------------------- |
| 58 | |
| 59 | void aakart_device::device_reset() |
| 60 | { |
| 61 | } |
| 62 | |
| 63 | |
| 64 | //************************************************************************** |
| 65 | // READ/WRITE HANDLERS |
| 66 | //************************************************************************** |
| 67 | |
| 68 | READ8_MEMBER( aakart_device::read ) |
| 69 | { |
| 70 | return 0; |
| 71 | } |
| 72 | |
| 73 | WRITE8_MEMBER( aakart_device::write ) |
| 74 | { |
| 75 | } |
trunk/src/emu/machine/aakart.h
| r0 | r19200 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Acorn 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 | |
| 28 | class aakart_device : public device_t |
| 29 | { |
| 30 | public: |
| 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 | |
| 38 | protected: |
| 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 |
| 47 | extern const device_type AAKART; |
| 48 | |
| 49 | |
| 50 | |
| 51 | //************************************************************************** |
| 52 | // GLOBAL VARIABLES |
| 53 | //************************************************************************** |
| 54 | |
| 55 | |
| 56 | |
| 57 | #endif |