mirror of
https://github.com/holub/mame
synced 2025-05-30 17:41:47 +03:00
-hlekbd.cpp: Fixed up SGI HLE keyboard mapping. [Ryan Holtz]
-indigo.cpp: Added support for remaining commands used by the Indigo PROM monitor. [Ryan Holtz]
This commit is contained in:
parent
eb0c78b167
commit
acb363a5b0
@ -16,17 +16,17 @@ INPUT_PORTS_START( hle_device )
|
||||
PORT_START("ROW0")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LControl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT))
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT))
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
|
||||
@ -77,65 +77,65 @@ INPUT_PORTS_START( hle_device )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 1") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 0") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 4") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 2") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
|
||||
|
||||
PORT_START("ROW4")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 3") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP .") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 7") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 8") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 5") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 6") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP 9") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP -") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
|
||||
|
||||
PORT_START("ROW5")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L Alt") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT))
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R Alt") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT))
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R Control") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9))
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10))
|
||||
|
||||
PORT_START("ROW6")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F11") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11))
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen") PORT_CODE(KEYCODE_PRTSCR) PORT_CHAR(UCHAR_MAMEKEY(PRTSCR))
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Scroll Lock") PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK))
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Pause") PORT_CODE(KEYCODE_PAUSE)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Home") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Page Up") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP))
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("End") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Page Down") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN))
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num Lock") PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP /") PORT_CODE(KEYCODE_SLASH_PAD)
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP *") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK))
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("KP +") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
|
@ -50,8 +50,9 @@
|
||||
#define LOG_PIT (1 << 11)
|
||||
#define LOG_DSP (1 << 12)
|
||||
#define LOG_GFX (1 << 13)
|
||||
#define LOG_GFX_CMD (1 << 14)
|
||||
#define LOG_DUART (LOG_DUART0 | LOG_DUART1 | LOG_DUART2)
|
||||
#define LOG_ALL (LOG_UNKNOWN | LOG_INT | LOG_HPC | LOG_EEPROM | LOG_DMA | LOG_SCSI | LOG_SCSI_DMA | LOG_DUART | LOG_PIT | LOG_DSP | LOG_GFX)
|
||||
#define LOG_ALL (LOG_UNKNOWN | LOG_INT | LOG_HPC | LOG_EEPROM | LOG_DMA | LOG_SCSI | LOG_SCSI_DMA | LOG_DUART | LOG_PIT | LOG_DSP | LOG_GFX | LOG_GFX_CMD)
|
||||
|
||||
#define VERBOSE (LOG_ALL & ~(LOG_DUART1 | LOG_DUART0 | LOG_SCSI | LOG_SCSI_DMA | LOG_EEPROM | LOG_PIT | LOG_DSP))
|
||||
#include "logmacro.h"
|
||||
@ -215,6 +216,8 @@ protected:
|
||||
uint32_t m_z_pattern;
|
||||
uint32_t m_x_end_i;
|
||||
uint32_t m_y_end_i;
|
||||
uint32_t m_x_curr_i;
|
||||
uint32_t m_y_curr_i;
|
||||
|
||||
uint8_t m_palette_idx;
|
||||
uint8_t m_palette_channel;
|
||||
@ -329,6 +332,8 @@ void indigo_state::machine_start()
|
||||
save_item(NAME(m_lg1.m_z_pattern));
|
||||
save_item(NAME(m_lg1.m_x_end_i));
|
||||
save_item(NAME(m_lg1.m_y_end_i));
|
||||
save_item(NAME(m_lg1.m_x_curr_i));
|
||||
save_item(NAME(m_lg1.m_y_curr_i));
|
||||
save_item(NAME(m_lg1.m_palette_idx));
|
||||
save_item(NAME(m_lg1.m_palette_channel));
|
||||
save_item(NAME(m_lg1.m_palette_entry));
|
||||
@ -894,6 +899,10 @@ READ32_MEMBER(indigo_state::entry_r)
|
||||
uint32_t ret = 0;
|
||||
switch (offset)
|
||||
{
|
||||
case REX15_PAGE0_GO/4:
|
||||
LOGMASKED(LOG_GFX, "%s: LG1 Read: Status(?) (Go) %08x = %08x & %08x\n", machine().describe_context(), 0x1f3f0000 + offset*4, ret, mem_mask);
|
||||
do_rex_command();
|
||||
break;
|
||||
case 0x0014/4:
|
||||
ret = 0x033c0000;
|
||||
LOGMASKED(LOG_GFX, "%s: LG1 Read: Presence Detect(?) %08x = %08x & %08x\n", machine().describe_context(), 0x1f3f0000 + offset*4, ret, mem_mask);
|
||||
@ -907,50 +916,58 @@ READ32_MEMBER(indigo_state::entry_r)
|
||||
|
||||
void indigo_state::do_rex_command()
|
||||
{
|
||||
/*
|
||||
REX15_OP_FLAG_BLOCK = 0x00000008,
|
||||
REX15_OP_FLAG_LENGTH32 = 0x00000010,
|
||||
REX15_OP_FLAG_QUADMODE = 0x00000020,
|
||||
REX15_OP_FLAG_XYCONTINUE = 0x00000080,
|
||||
REX15_OP_FLAG_STOPONX = 0x00000100,
|
||||
REX15_OP_FLAG_STOPONY = 0x00000200,
|
||||
REX15_OP_FLAG_ENZPATTERN = 0x00000400,
|
||||
REX15_OP_FLAG_LOGICSRC = 0x00080000,
|
||||
REX15_OP_FLAG_ZOPAQUE = 0x00800000,
|
||||
REX15_OP_FLAG_ZCONTINUE = 0x01000000,
|
||||
*/
|
||||
if (m_lg1.m_command == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (m_lg1.m_command == 0x30000329)
|
||||
|
||||
if (m_lg1.m_command == 0x30000329)
|
||||
{
|
||||
for (uint32_t y = m_lg1.m_y_start_i; y <= m_lg1.m_y_end_i; y++)
|
||||
bool xycontinue = (m_lg1.m_command & REX15_OP_FLAG_XYCONTINUE);
|
||||
uint32_t start_x = xycontinue ? m_lg1.m_x_curr_i : m_lg1.m_x_start_i;
|
||||
uint32_t start_y = xycontinue ? m_lg1.m_y_curr_i : m_lg1.m_y_start_i;
|
||||
uint32_t end_x = m_lg1.m_x_end_i;
|
||||
uint32_t end_y = m_lg1.m_y_end_i;
|
||||
|
||||
LOGMASKED(LOG_GFX, "LG1: Command %08x: Block draw from %d,%d-%d,%d inclusive.\n", m_lg1.m_command, start_x, start_y, end_x, end_y);
|
||||
for (uint32_t y = start_y; y <= end_y; y++)
|
||||
{
|
||||
for (uint32_t x = m_lg1.m_x_start_i; x <= m_lg1.m_x_end_i; x++)
|
||||
for (uint32_t x = start_x; x <= end_x; x++)
|
||||
{
|
||||
m_framebuffer[y*1024 + x] = m_lg1.m_color_red_i;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (m_lg1.m_command == 0x300005b9)
|
||||
else if (m_lg1.m_command == 0x300005a1 ||
|
||||
m_lg1.m_command == 0x300005a9 ||
|
||||
m_lg1.m_command == 0x300005b9)
|
||||
{
|
||||
uint32_t start_x = m_lg1.m_x_start_i;
|
||||
uint32_t start_y = m_lg1.m_y_start_i;
|
||||
bool xycontinue = (m_lg1.m_command & REX15_OP_FLAG_XYCONTINUE);
|
||||
uint32_t start_x = xycontinue ? m_lg1.m_x_curr_i : m_lg1.m_x_start_i;
|
||||
uint32_t start_y = xycontinue ? m_lg1.m_y_curr_i : m_lg1.m_y_start_i;
|
||||
uint32_t end_x = m_lg1.m_x_end_i;
|
||||
LOGMASKED(LOG_GFX, "LG1: Command %08x: Pattern draw from %d-%d at %d\n", m_lg1.m_command, start_x, end_x, start_y);
|
||||
for (uint32_t x = start_x; x <= end_x && x < (start_x + 32); x++)
|
||||
{
|
||||
if (BIT(m_lg1.m_z_pattern, 31 - (x - start_x)))
|
||||
{
|
||||
m_framebuffer[start_y*1024 + x] = m_lg1.m_color_red_i;
|
||||
}
|
||||
m_lg1.m_x_curr_i++;
|
||||
}
|
||||
|
||||
if (m_lg1.m_command & REX15_OP_FLAG_BLOCK)
|
||||
{
|
||||
if (m_lg1.m_x_curr_i > m_lg1.m_x_end_i)
|
||||
{
|
||||
m_lg1.m_y_curr_i--;
|
||||
m_lg1.m_x_curr_i = m_lg1.m_x_start_i;
|
||||
}
|
||||
}
|
||||
start_y--;
|
||||
m_lg1.m_y_start_i = start_y;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGMASKED(LOG_GFX, "%s: Unknown LG1 command: %08x\n", machine().describe_context(), m_lg1.m_command);
|
||||
LOGMASKED(LOG_GFX_CMD | LOG_UNKNOWN, "%s: Unknown LG1 command: %08x\n", machine().describe_context(), m_lg1.m_command);
|
||||
}
|
||||
}
|
||||
|
||||
@ -964,17 +981,19 @@ WRITE32_MEMBER(indigo_state::entry_w)
|
||||
case (REX15_PAGE0_GO+REX15_P0REG_COMMAND)/4:
|
||||
m_lg1.m_command = data;
|
||||
LOGMASKED(LOG_GFX, "%s: LG1 REX1.5 Command Write (%s) = %08x\n", machine().describe_context(), (offset & 0x200) ? "Go" : "Set", data);
|
||||
if (go || !(m_lg1.m_command & REX15_OP_FLAG_ENZPATTERN))
|
||||
if (go)
|
||||
do_rex_command();
|
||||
break;
|
||||
case (REX15_PAGE0_SET+REX15_P0REG_XSTARTI)/4:
|
||||
case (REX15_PAGE0_GO+REX15_P0REG_XSTARTI)/4:
|
||||
m_lg1.m_x_start_i = data;
|
||||
m_lg1.m_x_curr_i = m_lg1.m_x_start_i;
|
||||
LOGMASKED(LOG_GFX, "%s: LG1 REX1.5 XStartI Write (%s) = %08x\n", machine().describe_context(), (offset & 0x200) ? "Go" : "Set", data);
|
||||
break;
|
||||
case (REX15_PAGE0_SET+REX15_P0REG_YSTARTI)/4:
|
||||
case (REX15_PAGE0_GO+REX15_P0REG_YSTARTI)/4:
|
||||
m_lg1.m_y_start_i = data;
|
||||
m_lg1.m_y_curr_i = m_lg1.m_y_start_i;
|
||||
LOGMASKED(LOG_GFX, "%s: LG1 REX1.5 YStartI Write (%s) = %08x\n", machine().describe_context(), (offset & 0x200) ? "Go" : "Set", data);
|
||||
break;
|
||||
case (REX15_PAGE0_SET+REX15_P0REG_XYMOVE)/4:
|
||||
|
Loading…
Reference in New Issue
Block a user