mirror of
https://github.com/holub/mame
synced 2025-05-15 18:32:02 +03:00
Imported MSM6255 LCD controller device from MESS. (no whatsnew)
This commit is contained in:
parent
ea0681da07
commit
b72cf3c570
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1208,6 +1208,8 @@ src/emu/video/hd63484.c svneol=native#text/plain
|
|||||||
src/emu/video/hd63484.h svneol=native#text/plain
|
src/emu/video/hd63484.h svneol=native#text/plain
|
||||||
src/emu/video/mc6845.c svneol=native#text/plain
|
src/emu/video/mc6845.c svneol=native#text/plain
|
||||||
src/emu/video/mc6845.h svneol=native#text/plain
|
src/emu/video/mc6845.h svneol=native#text/plain
|
||||||
|
src/emu/video/msm6255.c svneol=native#text/plain
|
||||||
|
src/emu/video/msm6255.h svneol=native#text/plain
|
||||||
src/emu/video/pc_vga.c svneol=native#text/plain
|
src/emu/video/pc_vga.c svneol=native#text/plain
|
||||||
src/emu/video/pc_vga.h svneol=native#text/plain
|
src/emu/video/pc_vga.h svneol=native#text/plain
|
||||||
src/emu/video/pc_video.c svneol=native#text/plain
|
src/emu/video/pc_video.c svneol=native#text/plain
|
||||||
|
@ -234,6 +234,7 @@ EMUVIDEOOBJS = \
|
|||||||
$(EMUVIDEO)/hd61830.o \
|
$(EMUVIDEO)/hd61830.o \
|
||||||
$(EMUVIDEO)/hd63484.o \
|
$(EMUVIDEO)/hd63484.o \
|
||||||
$(EMUVIDEO)/mc6845.o \
|
$(EMUVIDEO)/mc6845.o \
|
||||||
|
$(EMUVIDEO)/msm6255.o \
|
||||||
$(EMUVIDEO)/pc_vga.o \
|
$(EMUVIDEO)/pc_vga.o \
|
||||||
$(EMUVIDEO)/pc_video.o \
|
$(EMUVIDEO)/pc_video.o \
|
||||||
$(EMUVIDEO)/poly.o \
|
$(EMUVIDEO)/poly.o \
|
||||||
|
452
src/emu/video/msm6255.c
Normal file
452
src/emu/video/msm6255.c
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
OKI MSM6255 Dot Matrix LCD Controller implementation
|
||||||
|
|
||||||
|
Copyright MESS Team.
|
||||||
|
Visit http://mamedev.org for licensing and usage restrictions.
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "msm6255.h"
|
||||||
|
#include "machine/devhelpr.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// MACROS / CONSTANTS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
#define LOG 0
|
||||||
|
|
||||||
|
|
||||||
|
// registers
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
REGISTER_MOR = 0,
|
||||||
|
REGISTER_PR,
|
||||||
|
REGISTER_HNR,
|
||||||
|
REGISTER_DVR,
|
||||||
|
REGISTER_CPR,
|
||||||
|
REGISTER_SLR,
|
||||||
|
REGISTER_SUR,
|
||||||
|
REGISTER_CLR,
|
||||||
|
REGISTER_CUR
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define MOR_GRAPHICS 0x01
|
||||||
|
#define MOR_4_BIT_PARALLEL 0x02
|
||||||
|
#define MOR_2_BIT_PARALLEL 0x04
|
||||||
|
#define MOR_DISPLAY_ON 0x08
|
||||||
|
#define MOR_CURSOR_BLINK 0x10
|
||||||
|
#define MOR_CURSOR_ON 0x20
|
||||||
|
#define MOR_BLINK_TIME_16 0x40
|
||||||
|
|
||||||
|
|
||||||
|
#define PR_HP_4 0x03
|
||||||
|
#define PR_HP_5 0x04
|
||||||
|
#define PR_HP_6 0x05
|
||||||
|
#define PR_HP_7 0x06
|
||||||
|
#define PR_HP_8 0x07
|
||||||
|
#define PR_HP_MASK 0x07
|
||||||
|
#define PR_VP_MASK 0xf0
|
||||||
|
|
||||||
|
|
||||||
|
#define HNR_HN_MASK 0x7f
|
||||||
|
|
||||||
|
|
||||||
|
#define DVR_DN_MASK 0x7f
|
||||||
|
|
||||||
|
|
||||||
|
#define CPR_CPD_MASK 0x0f
|
||||||
|
#define CPR_CPU_MASK 0xf0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// GLOBAL VARIABLES
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
// devices
|
||||||
|
const device_type MSM6255 = msm6255_device_config::static_alloc_device_config;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// DEVICE CONFIGURATION
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
GENERIC_DEVICE_CONFIG_SETUP(msm6255, "MSM6255")
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_config_complete - perform any
|
||||||
|
// operations now that the configuration is
|
||||||
|
// complete
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device_config::device_config_complete()
|
||||||
|
{
|
||||||
|
// inherit a copy of the static data
|
||||||
|
const msm6255_interface *intf = reinterpret_cast<const msm6255_interface *>(static_config());
|
||||||
|
if (intf != NULL)
|
||||||
|
{
|
||||||
|
*static_cast<msm6255_interface *>(this) = *intf;
|
||||||
|
|
||||||
|
m_char_ram_r = intf->m_char_ram_r;
|
||||||
|
}
|
||||||
|
// or initialize to defaults if none provided
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fatalerror("Interface not specified!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// INLINE HELPERS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// read_video_data - read video ROM/RAM
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
inline UINT8 msm6255_device::read_video_data(UINT16 ma, UINT8 ra)
|
||||||
|
{
|
||||||
|
return m_config.m_char_ram_r(this, ma, ra);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// LIVE DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// msm6255_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
msm6255_device::msm6255_device(running_machine &_machine, const msm6255_device_config &config)
|
||||||
|
: device_t(_machine, config),
|
||||||
|
m_cursor(0),
|
||||||
|
m_config(config)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::device_start()
|
||||||
|
{
|
||||||
|
// find screen
|
||||||
|
m_screen = machine->device<screen_device>(m_config.m_screen_tag);
|
||||||
|
|
||||||
|
// register for state saving
|
||||||
|
save_item(NAME(m_ir));
|
||||||
|
save_item(NAME(m_mor));
|
||||||
|
save_item(NAME(m_pr));
|
||||||
|
save_item(NAME(m_hnr));
|
||||||
|
save_item(NAME(m_dvr));
|
||||||
|
save_item(NAME(m_cpr));
|
||||||
|
save_item(NAME(m_slr));
|
||||||
|
save_item(NAME(m_sur));
|
||||||
|
save_item(NAME(m_clr));
|
||||||
|
save_item(NAME(m_cur));
|
||||||
|
save_item(NAME(m_cursor));
|
||||||
|
save_item(NAME(m_frame));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_reset - device-specific reset
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::device_reset()
|
||||||
|
{
|
||||||
|
m_frame = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// read - register read
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
READ8_MEMBER( msm6255_device::read )
|
||||||
|
{
|
||||||
|
UINT8 data = 0;
|
||||||
|
|
||||||
|
if (offset & 0x01)
|
||||||
|
{
|
||||||
|
return m_ir;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (m_ir)
|
||||||
|
{
|
||||||
|
case REGISTER_MOR:
|
||||||
|
break; // write-only
|
||||||
|
|
||||||
|
case REGISTER_PR:
|
||||||
|
data = m_pr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_HNR:
|
||||||
|
data = m_hnr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_DVR:
|
||||||
|
break; // write-only
|
||||||
|
|
||||||
|
case REGISTER_CPR:
|
||||||
|
data = m_cpr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_SLR:
|
||||||
|
data = m_slr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_SUR:
|
||||||
|
data = m_sur;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_CLR:
|
||||||
|
data = m_clr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_CUR:
|
||||||
|
data = m_cur;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// write - register write
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
WRITE8_MEMBER( msm6255_device::write )
|
||||||
|
{
|
||||||
|
if (offset & 0x01)
|
||||||
|
{
|
||||||
|
m_ir = data & 0x0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (m_ir)
|
||||||
|
{
|
||||||
|
case REGISTER_MOR:
|
||||||
|
m_mor = data & 0x7f;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_PR:
|
||||||
|
m_pr = data & 0xf7;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_HNR:
|
||||||
|
m_hnr = data & 0x7f;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_DVR:
|
||||||
|
m_dvr = data;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_CPR:
|
||||||
|
m_cpr = data;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_SLR:
|
||||||
|
m_slr = data;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_SUR:
|
||||||
|
m_sur = data;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_CLR:
|
||||||
|
m_clr = data;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REGISTER_CUR:
|
||||||
|
m_cur = data;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// update_cursor -
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::update_cursor()
|
||||||
|
{
|
||||||
|
if (m_mor & MOR_CURSOR_ON)
|
||||||
|
{
|
||||||
|
if (m_mor & MOR_CURSOR_BLINK)
|
||||||
|
{
|
||||||
|
if (m_mor & MOR_BLINK_TIME_16)
|
||||||
|
{
|
||||||
|
if (m_frame == 16)
|
||||||
|
{
|
||||||
|
m_cursor = !m_cursor;
|
||||||
|
m_frame = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_frame++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (m_frame == 32)
|
||||||
|
{
|
||||||
|
m_cursor = !m_cursor;
|
||||||
|
m_frame = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_frame++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_cursor = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_cursor = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// draw_scanline -
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::draw_scanline(bitmap_t *bitmap, const rectangle *cliprect, int y, UINT16 ma, UINT8 ra)
|
||||||
|
{
|
||||||
|
UINT8 hp = (m_pr & PR_HP_MASK) + 1;
|
||||||
|
UINT8 hn = (m_hnr & HNR_HN_MASK) + 1;
|
||||||
|
UINT8 cpu = m_cpr & CPR_CPU_MASK;
|
||||||
|
UINT8 cpd = m_cpr & CPR_CPD_MASK;
|
||||||
|
UINT16 car = (m_cur << 8) | m_clr;
|
||||||
|
|
||||||
|
int sx, x;
|
||||||
|
|
||||||
|
for (sx = 0; sx < hn; sx++)
|
||||||
|
{
|
||||||
|
UINT8 data = read_video_data(ma, ra);
|
||||||
|
|
||||||
|
if (m_cursor)
|
||||||
|
{
|
||||||
|
if (ma == car)
|
||||||
|
{
|
||||||
|
if (ra >= cpu && ra <= cpd)
|
||||||
|
{
|
||||||
|
data ^= 0xff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (x = 0; x < hp; x++)
|
||||||
|
{
|
||||||
|
*BITMAP_ADDR16(bitmap, y, (sx * hp) + x) = BIT(data, 7);
|
||||||
|
|
||||||
|
data <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ma++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// update_graphics -
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::update_graphics(bitmap_t *bitmap, const rectangle *cliprect)
|
||||||
|
{
|
||||||
|
UINT8 hn = (m_hnr & HNR_HN_MASK) + 1;
|
||||||
|
UINT8 nx = (m_dvr & DVR_DN_MASK) + 1;
|
||||||
|
UINT16 sar = (m_sur << 8) | m_slr;
|
||||||
|
|
||||||
|
int y;
|
||||||
|
|
||||||
|
m_cursor = 0;
|
||||||
|
m_frame = 0;
|
||||||
|
|
||||||
|
for (y = 0; y < nx; y++)
|
||||||
|
{
|
||||||
|
// draw upper half scanline
|
||||||
|
UINT16 ma = sar + (y * hn);
|
||||||
|
draw_scanline(bitmap, cliprect, y, ma, 0);
|
||||||
|
|
||||||
|
// draw lower half scanline
|
||||||
|
ma = sar + ((y + nx) * hn);
|
||||||
|
draw_scanline(bitmap, cliprect, y + nx, ma, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// update_text -
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::update_text(bitmap_t *bitmap, const rectangle *cliprect)
|
||||||
|
{
|
||||||
|
UINT8 hn = (m_hnr & HNR_HN_MASK) + 1;
|
||||||
|
UINT8 vp = (m_pr & PR_VP_MASK) + 1;
|
||||||
|
UINT8 nx = (m_dvr & DVR_DN_MASK) + 1;
|
||||||
|
UINT16 sar = (m_sur << 8) | m_slr;
|
||||||
|
|
||||||
|
int sy, y;
|
||||||
|
|
||||||
|
update_cursor();
|
||||||
|
|
||||||
|
for (sy = 0; sy < nx; sy++)
|
||||||
|
{
|
||||||
|
for (y = 0; y < vp; y++)
|
||||||
|
{
|
||||||
|
// draw upper half scanline
|
||||||
|
UINT16 ma = sar + ((sy * vp) + y) * hn;
|
||||||
|
draw_scanline(bitmap, cliprect, (sy * vp) + y, ma, y);
|
||||||
|
|
||||||
|
// draw lower half scanline
|
||||||
|
ma = sar + (((sy + nx) * vp) + y) * hn;
|
||||||
|
draw_scanline(bitmap, cliprect, (sy * vp) + y, ma, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// update_screen - update screen
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void msm6255_device::update_screen(bitmap_t *bitmap, const rectangle *cliprect)
|
||||||
|
{
|
||||||
|
if (m_mor & MOR_DISPLAY_ON)
|
||||||
|
{
|
||||||
|
if (m_mor & MOR_GRAPHICS)
|
||||||
|
{
|
||||||
|
update_graphics(bitmap, cliprect);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
update_text(bitmap, cliprect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bitmap_fill(bitmap, cliprect, get_black_pen(machine));
|
||||||
|
}
|
||||||
|
}
|
134
src/emu/video/msm6255.h
Normal file
134
src/emu/video/msm6255.h
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
OKI MSM6255 Dot Matrix LCD Controller implementation
|
||||||
|
|
||||||
|
Copyright MESS Team.
|
||||||
|
Visit http://mamedev.org for licensing and usage restrictions.
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __MSM6255__
|
||||||
|
#define __MSM6255__
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///*************************************************************************
|
||||||
|
// INTERFACE CONFIGURATION MACROS
|
||||||
|
///*************************************************************************
|
||||||
|
|
||||||
|
#define MCFG_MSM6255_ADD(_tag, _clock, _config) \
|
||||||
|
MCFG_DEVICE_ADD(_tag, MSM6255, _clock) \
|
||||||
|
MCFG_DEVICE_CONFIG(_config)
|
||||||
|
|
||||||
|
|
||||||
|
#define MSM6255_INTERFACE(name) \
|
||||||
|
const msm6255_interface (name) =
|
||||||
|
|
||||||
|
|
||||||
|
#define MSM6255_CHAR_RAM_READ(_name) \
|
||||||
|
UINT8 _name(device_t *device, UINT16 ma, UINT8 ra)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///*************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
///*************************************************************************
|
||||||
|
|
||||||
|
// ======================> msm6255_char_ram_read_func
|
||||||
|
|
||||||
|
typedef UINT8 (*msm6255_char_ram_read_func)(device_t *device, UINT16 ma, UINT8 ra);
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> msm6255_interface
|
||||||
|
|
||||||
|
struct msm6255_interface
|
||||||
|
{
|
||||||
|
const char *m_screen_tag;
|
||||||
|
|
||||||
|
int m_character_clock;
|
||||||
|
|
||||||
|
// ROM/RAM data read function
|
||||||
|
msm6255_char_ram_read_func m_char_ram_r;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> msm6255_device_config
|
||||||
|
|
||||||
|
class msm6255_device_config : public device_config,
|
||||||
|
public msm6255_interface
|
||||||
|
{
|
||||||
|
friend class msm6255_device;
|
||||||
|
|
||||||
|
// construction/destruction
|
||||||
|
msm6255_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
|
||||||
|
|
||||||
|
public:
|
||||||
|
// allocators
|
||||||
|
static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
|
||||||
|
virtual device_t *alloc_device(running_machine &machine) const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device_config overrides
|
||||||
|
virtual void device_config_complete();
|
||||||
|
|
||||||
|
msm6255_char_ram_read_func m_char_ram_r;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> msm6255_device
|
||||||
|
|
||||||
|
class msm6255_device : public device_t
|
||||||
|
{
|
||||||
|
friend class msm6255_device_config;
|
||||||
|
|
||||||
|
// construction/destruction
|
||||||
|
msm6255_device(running_machine &_machine, const msm6255_device_config &_config);
|
||||||
|
|
||||||
|
public:
|
||||||
|
DECLARE_READ8_MEMBER( read );
|
||||||
|
DECLARE_WRITE8_MEMBER( write );
|
||||||
|
|
||||||
|
void update_screen(bitmap_t *bitmap, const rectangle *cliprect);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start();
|
||||||
|
virtual void device_reset();
|
||||||
|
|
||||||
|
private:
|
||||||
|
inline UINT8 read_video_data(UINT16 ma, UINT8 ra);
|
||||||
|
void update_cursor();
|
||||||
|
void draw_scanline(bitmap_t *bitmap, const rectangle *cliprect, int y, UINT16 ma, UINT8 ra);
|
||||||
|
void update_graphics(bitmap_t *bitmap, const rectangle *cliprect);
|
||||||
|
void update_text(bitmap_t *bitmap, const rectangle *cliprect);
|
||||||
|
|
||||||
|
screen_device *m_screen;
|
||||||
|
|
||||||
|
UINT8 m_ir; // instruction register
|
||||||
|
UINT8 m_mor; // mode control register
|
||||||
|
UINT8 m_pr; // character pitch register
|
||||||
|
UINT8 m_hnr; // horizontal character number register
|
||||||
|
UINT8 m_dvr; // duty number register
|
||||||
|
UINT8 m_cpr; // cursor form register
|
||||||
|
UINT8 m_slr; // start address (lower) register
|
||||||
|
UINT8 m_sur; // start address (upper) register
|
||||||
|
UINT8 m_clr; // cursor address (lower) register
|
||||||
|
UINT8 m_cur; // cursor address (upper) register
|
||||||
|
|
||||||
|
int m_cursor; // is cursor displayed
|
||||||
|
int m_frame; // frame counter
|
||||||
|
|
||||||
|
const msm6255_device_config &m_config;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
extern const device_type MSM6255;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user