Previous 199869 Revisions Next

r23552 Sunday 9th June, 2013 at 02:01:56 UTC by Barry Rodewald
attache: Fixed CMOS RAM reading.
[src/mess/drivers]attache.c

trunk/src/mess/drivers/attache.c
r23551r23552
33 *
44 *  Created on: 17/05/2013
55 *
6 *  Skeleton driver
6 *  Driver by Barry Rodewald
77 *
88 *
99 *  Otrona Attache
r23551r23552
6363#include "machine/upd765.h"
6464#include "video/tms9927.h"
6565#include "machine/ram.h"
66#include "machine/nvram.h"
6667
6768class attache_state : public driver_device
6869{
r23551r23552
100101        m_membank6(*this, "bank6"),
101102        m_membank7(*this, "bank7"),
102103        m_membank8(*this, "bank8"),
104        m_nvram(*this, "nvram"),
103105        m_rom_active(true),
104106        m_gfx_enabled(false),
105107        m_kb_clock(true),
r23551r23552
197199   required_memory_bank m_membank6;
198200   required_memory_bank m_membank7;
199201   required_memory_bank m_membank8;
202   required_device<nvram_device> m_nvram;
200203
201204   bool m_rom_active;
202205   bool m_gfx_enabled;
r23551r23552
434437READ8_MEMBER(attache_state::pio_portA_r)
435438{
436439   UINT8 ret = 0xff;
440   UINT8 porta = m_pio_porta;
437441
438442   switch(m_pio_select)
439443   {
r23551r23552
442446      logerror("PSG: data read %02x\n",ret);
443447      break;
444448   case PIO_SEL_5832_WRITE:
449      m_rtc->address_w((porta & 0xf0) >> 4);
445450      ret = m_rtc->data_r(space,0);
446451      logerror("RTC: read %02x (write)\n",ret);
447452      break;
448453   case PIO_SEL_5832_READ:
454      m_rtc->address_w((porta & 0xf0) >> 4);
449455      ret = m_rtc->data_r(space,0);
450456      logerror("RTC: read %02x\n",ret);
451457      break;
452458   case PIO_SEL_5101_WRITE:
459      m_cmos_select = (m_cmos_select & 0xf0) | ((porta & 0xf0) >> 4);
453460      ret = m_cmos_ram[m_cmos_select] & 0x0f;
454      logerror("CMOS: read %02x to byte %02x (write)\n",ret, m_cmos_select);
461      logerror("CMOS: read %02x from byte %02x (write)\n",ret, m_cmos_select);
455462      break;
456463   case PIO_SEL_5101_READ:
464      m_cmos_select = (m_cmos_select & 0xf0) | ((porta & 0xf0) >> 4);
457465      ret = m_cmos_ram[m_cmos_select] & 0x0f;
458      logerror("CMOS: read %02x to byte %02x\n",ret, m_cmos_select);
466      logerror("CMOS: read %02x from byte %02x\n",ret, m_cmos_select);
459467      break;
460468   case PIO_SEL_LATCH:
461469      ret = 0x00;  // Write-only?
r23551r23552
555563   //B7 = /KEYBOARD CLOCK OUT
556564   if((data & 0x20) && !(m_pio_portb & 0x20))
557565      operation_strobe(space,m_pio_porta);
558   m_pio_portb = data;
559566   m_pio_select = (data & 0x1c) >> 2;
560567   m_cmos_select = ((data & 0x03) << 4) | (m_cmos_select & 0x0f);
568   m_pio_portb = data;
561569   keyboard_clock_w(data & 0x80);
562570}
563571
r23551r23552
955963
956964   memset(RAM,0,65536);
957965
966   m_nvram->set_base(m_cmos_ram,64);
967
958968   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000,0x0fff,read8_delegate(FUNC(attache_state::rom_r),this),write8_delegate(FUNC(attache_state::rom_w),this));
959969
960970   save_pointer(m_char_ram,"Character RAM",128*32);
r23551r23552
10171027
10181028   MCFG_TMS9927_ADD("crtc", 12324000, crtc_interface)
10191029
1030   MCFG_NVRAM_ADD_0FILL("nvram")
1031
10201032   MCFG_RAM_ADD(RAM_TAG)
10211033   MCFG_RAM_DEFAULT_SIZE("64k")
10221034   
r23551r23552
10641076ROM_END
10651077
10661078/*    YEAR  NAME    PARENT  COMPAT      MACHINE     INPUT    DEVICE            INIT    COMPANY      FULLNAME     FLAGS */
1067COMP( 1982, attache, 0,      0,         attache,    attache, driver_device,    0,      "Otrona",   "Attache (boot rev G)",    GAME_IS_SKELETON)
1068COMP( 1982, attachef,attache,0,         attache,    attache, driver_device,    0,      "Otrona",   "Attache (boot rev F)",    GAME_IS_SKELETON)
1079COMP( 1982, attache, 0,      0,         attache,    attache, driver_device,    0,      "Otrona",   "Attache (boot rev G)",    GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING)
1080COMP( 1982, attachef,attache,0,         attache,    attache, driver_device,    0,      "Otrona",   "Attache (boot rev F)",    GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team