mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
(MESS) fc100 : used ioport_array, and fixed a couple of bugs.
This commit is contained in:
parent
3487b01445
commit
248c2ced08
@ -11,6 +11,7 @@ Known chips: M5C6847P, AY-3-8910, 8251. XTALS 7.15909, 4.9152
|
||||
No manuals or schematics available.
|
||||
Shift-Run to BREAK out of CLOAD.
|
||||
Cassette uses the uart.
|
||||
There is an inbuilt Monitor. MON to enter. Commands are D,G,M,R,S,X.
|
||||
|
||||
|
||||
Test of semigraphic 6
|
||||
@ -55,9 +56,11 @@ public:
|
||||
, m_cass(*this, "cassette")
|
||||
, m_uart(*this, "uart")
|
||||
, m_centronics(*this, "centronics")
|
||||
, m_keyboard(*this, "KEY")
|
||||
{ }
|
||||
|
||||
DECLARE_READ8_MEMBER(mc6847_videoram_r);
|
||||
DECLARE_READ8_MEMBER(port00_r);
|
||||
DECLARE_WRITE8_MEMBER(port31_w);
|
||||
DECLARE_WRITE8_MEMBER(port33_w);
|
||||
DECLARE_WRITE8_MEMBER(port43_w);
|
||||
@ -89,7 +92,7 @@ private:
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
bool m_key_pressed;
|
||||
UINT8 m_key_pressed;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<mc6847_base_device> m_vdg;
|
||||
@ -97,6 +100,7 @@ private:
|
||||
required_device<cassette_image_device> m_cass;
|
||||
required_device<i8251_device> m_uart;
|
||||
required_device<centronics_device> m_centronics;
|
||||
required_ioport_array<16> m_keyboard;
|
||||
};
|
||||
|
||||
|
||||
@ -104,46 +108,33 @@ static ADDRESS_MAP_START( fc100_mem, AS_PROGRAM, 8, fc100_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
|
||||
AM_RANGE( 0x6000, 0x7fff ) AM_ROM AM_REGION("cart", 0)
|
||||
AM_RANGE( 0x8000, 0xBFFF ) AM_RAM // expansion ram pack
|
||||
AM_RANGE( 0x8000, 0xBFFF ) AM_RAM // expansion ram pack - if omitted you get a 'Pages?' prompt at boot
|
||||
AM_RANGE( 0xc000, 0xffff ) AM_RAM AM_SHARE("videoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fc100_io, AS_IO, 8, fc100_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("00")
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("01")
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("02")
|
||||
AM_RANGE(0x03, 0x03) AM_READ_PORT("03")
|
||||
AM_RANGE(0x04, 0x04) AM_READ_PORT("04")
|
||||
AM_RANGE(0x05, 0x05) AM_READ_PORT("05")
|
||||
AM_RANGE(0x06, 0x06) AM_READ_PORT("06")
|
||||
AM_RANGE(0x07, 0x07) AM_READ_PORT("07")
|
||||
AM_RANGE(0x08, 0x08) AM_READ_PORT("08")
|
||||
AM_RANGE(0x09, 0x09) AM_READ_PORT("09")
|
||||
AM_RANGE(0x0A, 0x0A) AM_READ_PORT("0A")
|
||||
AM_RANGE(0x0B, 0x0B) AM_READ_PORT("0B")
|
||||
AM_RANGE(0x0C, 0x0C) AM_READ_PORT("0C")
|
||||
AM_RANGE(0x0D, 0x0D) AM_READ_PORT("0D")
|
||||
AM_RANGE(0x0E, 0x0E) AM_READ_PORT("0E")
|
||||
AM_RANGE(0x0F, 0x0F) AM_READ_PORT("0F")
|
||||
AM_RANGE(0x00, 0x0F) AM_READ(port00_r)
|
||||
// AM_RANGE(0x10, 0x10) AM_WRITE(port10_w) // vdg, unknown effects
|
||||
AM_RANGE(0x21, 0x21) AM_DEVWRITE("psg", ay8910_device, data_w)
|
||||
AM_RANGE(0x22, 0x22) AM_DEVREAD("psg", ay8910_device, data_r)
|
||||
AM_RANGE(0x23, 0x23) AM_DEVWRITE("psg", ay8910_device, address_w)
|
||||
AM_RANGE(0x31, 0x31) AM_WRITE(port31_w)
|
||||
AM_RANGE(0x33, 0x33) AM_WRITE(port33_w)
|
||||
AM_RANGE(0x40, 0x40) AM_DEVWRITE("cent_data_out", output_latch_device, write)
|
||||
AM_RANGE(0x42, 0x42) AM_WRITENOP // bit 0 could be printer select
|
||||
AM_RANGE(0x43, 0x43) AM_WRITE(port43_w)
|
||||
AM_RANGE(0x44, 0x44) AM_DEVREAD("cent_status_in", input_buffer_device, read)
|
||||
// AM_RANGE(0x60, 0x61) writes 0 to both ports at boot
|
||||
AM_RANGE(0x70, 0x70) AM_WRITENOP // each screen character also gets written here
|
||||
// AM_RANGE(0x71, 0x71) writes 0 at boot
|
||||
// AM_RANGE(0x60, 0x61) banking, details unknown
|
||||
AM_RANGE(0x70, 0x70) AM_WRITENOP // banking, details unknown
|
||||
// AM_RANGE(0x71, 0x71) banking, details unknown
|
||||
AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("uart", i8251_device, data_r, data_w)
|
||||
AM_RANGE(0xb8, 0xb8) AM_DEVREADWRITE("uart", i8251_device, status_r, control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( fc100 )
|
||||
PORT_START("00")
|
||||
PORT_START("KEY.0")
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LALT) PORT_NAME("Graph") // does nothing
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Shift") PORT_CHAR(UCHAR_SHIFT_1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_NAME("Ctrl")
|
||||
@ -153,105 +144,105 @@ static INPUT_PORTS_START( fc100 )
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_NAME("P") PORT_CHAR('P') PORT_CHAR('p')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_NAME("O") PORT_CHAR('O') PORT_CHAR('o')
|
||||
|
||||
PORT_START("01")
|
||||
PORT_START("KEY.1")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("\\") PORT_CHAR('\\') PORT_CHAR('|')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Backspace") PORT_CHAR(8)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("=") PORT_CHAR('=') PORT_CHAR('+')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Enter") PORT_CHAR(13)
|
||||
|
||||
PORT_START("02")
|
||||
PORT_START("KEY.2")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
|
||||
|
||||
PORT_START("03")
|
||||
PORT_START("KEY.3")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_NAME("9") PORT_CHAR('9') PORT_CHAR('(')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_NAME(";") PORT_CHAR(';') PORT_CHAR(':')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("'") PORT_CHAR('\'') PORT_CHAR('"')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_NAME("Tab") PORT_CHAR(9)
|
||||
|
||||
PORT_START("04")
|
||||
PORT_START("KEY.4")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_NAME("5") PORT_CHAR('5') PORT_CHAR('^')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_NAME("6") PORT_CHAR('6') PORT_CHAR('&')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_NAME("7") PORT_CHAR('7') PORT_CHAR('%')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_NAME("8") PORT_CHAR('8') PORT_CHAR('*')
|
||||
|
||||
PORT_START("05")
|
||||
PORT_START("KEY.5")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_NAME("1") PORT_CHAR('1') PORT_CHAR('!')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_NAME("2") PORT_CHAR('2') PORT_CHAR('@')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_NAME("3") PORT_CHAR('3') PORT_CHAR('#')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_NAME("4") PORT_CHAR('4') PORT_CHAR('$')
|
||||
|
||||
PORT_START("06")
|
||||
PORT_START("KEY.6")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5) PORT_NAME("F5")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Space") PORT_CHAR(32)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Run")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_NAME("0") PORT_CHAR('0') PORT_CHAR(')')
|
||||
|
||||
PORT_START("07")
|
||||
PORT_START("KEY.7")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_NAME("F1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_NAME("F2")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) PORT_NAME("F3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4) PORT_NAME("F4")
|
||||
|
||||
PORT_START("08")
|
||||
PORT_START("KEY.8")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_NAME("-") PORT_CHAR('-') PORT_CHAR('_')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_NAME("/") PORT_CHAR('/') PORT_CHAR('?')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_NAME(".") PORT_CHAR('.') PORT_CHAR('>')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_NAME(",") PORT_CHAR(',') PORT_CHAR('<')
|
||||
|
||||
PORT_START("09")
|
||||
PORT_START("KEY.9")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_NAME("Home")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT) PORT_NAME("Ins")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL) PORT_NAME("Del")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_NAME("Esc") PORT_CHAR(27)
|
||||
|
||||
PORT_START("0A")
|
||||
PORT_START("KEY.10")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_NAME("B") PORT_CHAR('B') PORT_CHAR('b')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_NAME("N") PORT_CHAR('N') PORT_CHAR('n')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_NAME("M") PORT_CHAR('M') PORT_CHAR('m')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_NAME("L") PORT_CHAR('L') PORT_CHAR('l')
|
||||
|
||||
PORT_START("0B")
|
||||
PORT_START("KEY.11")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_NAME("Z") PORT_CHAR('Z') PORT_CHAR('z')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_NAME("X") PORT_CHAR('X') PORT_CHAR('x')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_NAME("C") PORT_CHAR('C') PORT_CHAR('c')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_NAME("V") PORT_CHAR('V') PORT_CHAR('v')
|
||||
|
||||
PORT_START("0C")
|
||||
PORT_START("KEY.12")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_NAME("G") PORT_CHAR('G') PORT_CHAR('g')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_NAME("H") PORT_CHAR('H') PORT_CHAR('h')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_NAME("J") PORT_CHAR('J') PORT_CHAR('j')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_NAME("K") PORT_CHAR('K') PORT_CHAR('k')
|
||||
|
||||
PORT_START("0D")
|
||||
PORT_START("KEY.13")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_NAME("A") PORT_CHAR('A') PORT_CHAR('a')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_NAME("S") PORT_CHAR('S') PORT_CHAR('s')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_NAME("D") PORT_CHAR('D') PORT_CHAR('d')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_NAME("F") PORT_CHAR('F') PORT_CHAR('f')
|
||||
|
||||
PORT_START("0E")
|
||||
PORT_START("KEY.14")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_NAME("T") PORT_CHAR('T') PORT_CHAR('t')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_NAME("Y") PORT_CHAR('Y') PORT_CHAR('y')
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_NAME("U") PORT_CHAR('U') PORT_CHAR('u')
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_NAME("I") PORT_CHAR('I') PORT_CHAR('i')
|
||||
|
||||
PORT_START("0F")
|
||||
PORT_START("KEY.15")
|
||||
PORT_BIT(0xF0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_NAME("Q") PORT_CHAR('Q') PORT_CHAR('q')
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_NAME("W") PORT_CHAR('W') PORT_CHAR('w')
|
||||
@ -279,17 +270,24 @@ static INPUT_PORTS_START( fc100 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
READ8_MEMBER( fc100_state::port00_r )
|
||||
{
|
||||
return m_keyboard[offset]->read();
|
||||
}
|
||||
|
||||
// The timer frequency controls the auto-repeat delay and speed
|
||||
// m_key_pressed:
|
||||
// 0 = no key pressed, nothing to do
|
||||
// 1 = key pressed, generate IRQ.
|
||||
// 2 = key released, generate IRQ.
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( fc100_state::timer_k)
|
||||
{
|
||||
/* scan the keyboard */
|
||||
UINT8 i;
|
||||
char kbdrow[6];
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
sprintf(kbdrow,"0%X", i);
|
||||
if ((ioport(kbdrow)->read()) < 255)
|
||||
if (m_keyboard[i]->read() < 255)
|
||||
{
|
||||
// IRQ if key pressed
|
||||
m_key_pressed = 1;
|
||||
@ -298,7 +296,14 @@ TIMER_DEVICE_CALLBACK_MEMBER( fc100_state::timer_k)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_key_pressed) // IRQ for key released
|
||||
if (m_key_pressed == 1) // IRQ for key released
|
||||
{
|
||||
m_key_pressed = 2;
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
if (m_key_pressed == 2) // release IRQ
|
||||
{
|
||||
m_key_pressed = 0;
|
||||
m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
@ -310,10 +315,6 @@ TIMER_DEVICE_CALLBACK_MEMBER( fc100_state::timer_k)
|
||||
#if 0
|
||||
WRITE8_MEMBER( fc100_state::ay_port_a_w )
|
||||
{
|
||||
//logerror("ay_port_a_w: %02X\n", data);
|
||||
|
||||
// Lacking schematics, these are all wild guesses
|
||||
// Having bit 1 set makes black display as blue??
|
||||
m_ag = BIT(data, 4);
|
||||
m_gm2 = BIT(data, 6);
|
||||
m_gm1 = BIT(data, 3);
|
||||
@ -327,12 +328,6 @@ WRITE8_MEMBER( fc100_state::ay_port_a_w )
|
||||
m_vdg->css_w( m_css ? ASSERT_LINE : CLEAR_LINE );
|
||||
m_vdg->hack_black_becomes_blue( BIT(data, 1) );
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER( fc100_state::ay_port_b_w )
|
||||
{
|
||||
//logerror("ay_port_b_w: %02X\n", data);
|
||||
}
|
||||
#endif
|
||||
|
||||
static const ay8910_interface ay8910_intf =
|
||||
@ -480,7 +475,7 @@ static const cassette_interface fc100_cassette_interface =
|
||||
{
|
||||
fc100_cassette_formats,
|
||||
NULL,
|
||||
(cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED),
|
||||
(cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED),
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
@ -515,7 +510,7 @@ void fc100_state::machine_reset()
|
||||
m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
|
||||
m_cass_state = 0;
|
||||
m_cassold = 0;
|
||||
m_key_pressed = 1; // force irq to be cleared
|
||||
m_key_pressed = 0;
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( fc100, fc100_state )
|
||||
|
Loading…
Reference in New Issue
Block a user