mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
83 lines
2.6 KiB
C++
83 lines
2.6 KiB
C++
#ifndef __ENTERP_H__
|
|
#define __ENTERP_H__
|
|
|
|
|
|
/* there are 64us per line, although in reality
|
|
about 50 are visible. */
|
|
#define ENTERPRISE_SCREEN_WIDTH (50*16)
|
|
|
|
/* there are 312 lines per screen, although in reality
|
|
about 35*8 are visible */
|
|
#define ENTERPRISE_SCREEN_HEIGHT (35*8)
|
|
|
|
|
|
#define NICK_PALETTE_SIZE 256
|
|
|
|
#include "machine/ram.h"
|
|
#include "audio/dave.h"
|
|
|
|
struct NICK_STATE;
|
|
|
|
class ep_state : public driver_device
|
|
{
|
|
public:
|
|
ep_state(const machine_config &mconfig, device_type type, const char *tag)
|
|
: driver_device(mconfig, type, tag),
|
|
m_maincpu(*this, "maincpu"),
|
|
m_dave(*this, "custom"),
|
|
m_ram(*this, RAM_TAG),
|
|
m_joy(*this, "JOY1") { }
|
|
|
|
required_device<cpu_device> m_maincpu;
|
|
required_device<dave_sound_device> m_dave;
|
|
required_device<ram_device> m_ram;
|
|
required_ioport m_joy;
|
|
|
|
UINT8 exdos_card_value; /* state of the wd1770 irq/drq lines */
|
|
UINT8 keyboard_line; /* index of keyboard line to read */
|
|
bitmap_ind16 m_bitmap;
|
|
NICK_STATE *nick;
|
|
|
|
ioport_port *m_key[10];
|
|
|
|
DECLARE_READ8_MEMBER(exdos_card_r);
|
|
DECLARE_WRITE8_MEMBER(exdos_card_w);
|
|
DECLARE_WRITE8_MEMBER(epnick_reg_w);
|
|
virtual void machine_start();
|
|
virtual void machine_reset();
|
|
virtual void video_start();
|
|
virtual void palette_init();
|
|
UINT32 screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
|
DECLARE_WRITE8_MEMBER(enterprise_dave_reg_write);
|
|
DECLARE_READ8_MEMBER(enterprise_dave_reg_read);
|
|
DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_intrq_w);
|
|
DECLARE_WRITE_LINE_MEMBER(enterp_wd1770_drq_w);
|
|
void enterprise_update_memory_page(address_space &space, offs_t page, int index);
|
|
char Nick_FetchByte(unsigned long Addr);
|
|
void nick_write_pixel(int ci);
|
|
void Nick_CalcVisibleClocks(int Width);
|
|
void Nick_Init();
|
|
void Nick_WriteBorder(int Clocks);
|
|
void Nick_DoLeftMargin();
|
|
void Nick_DoRightMargin();
|
|
int Nick_GetColourIndex(int PenIndex);
|
|
void Nick_WritePixels2Colour(unsigned char Pen0, unsigned char Pen1, unsigned char DataByte);
|
|
void Nick_WritePixels2ColourLPIXEL(unsigned char Pen0, unsigned char Pen1, unsigned char DataByte);
|
|
void Nick_WritePixels(unsigned char DataByte, unsigned char CharIndex);
|
|
void Nick_WritePixelsLPIXEL(unsigned char DataByte, unsigned char CharIndex);
|
|
void Nick_DoPixel(int ClocksVisible);
|
|
void Nick_DoLPixel(int ClocksVisible);
|
|
void Nick_DoAttr(int ClocksVisible);
|
|
void Nick_DoCh256(int ClocksVisible);
|
|
void Nick_DoCh128(int ClocksVisible);
|
|
void Nick_DoCh64(int ClocksVisible);
|
|
void Nick_DoDisplay();
|
|
void Nick_UpdateLPT();
|
|
void Nick_ReloadLPT();
|
|
void Nick_DoLine();
|
|
void Nick_DoScreen(bitmap_ind16 &bm);
|
|
};
|
|
|
|
|
|
#endif /* __ENTERP_H__ */
|