summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/lola8a.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/lola8a.c')
-rw-r--r--src/mess/drivers/lola8a.c111
1 files changed, 55 insertions, 56 deletions
diff --git a/src/mess/drivers/lola8a.c b/src/mess/drivers/lola8a.c
index 063802323b4..c06b00ff852 100644
--- a/src/mess/drivers/lola8a.c
+++ b/src/mess/drivers/lola8a.c
@@ -1,20 +1,20 @@
/***************************************************************************
-
- Lola 8A
-
- Ivo Lola Ribar Institute
+
+ Lola 8A
+
+ Ivo Lola Ribar Institute
2013-08-28 Skeleton driver.
- BASIC commands :
-
- LET NEXT IF GOTO GOSUB RETURN READ DATA FOR CLS INPUT DIM STOP END RESTORE
- REM CLEAR PUSH POKE PRINT OUT ERROR USR CURSOR NORMAL INVERSE PLOT UNPLOT
- ELSE WIPE COLOUR CENTRE RANGE DRAW CIRCLE LOAD SAVE VERIFY HLOAD HSAVE HVERIFY
- DLOAD DSAVE DVERIFY MERGE CAT RUN NEW ON LIST DEF MON GWIND TWIND UNDER
- SPC OFF TAB THEN TO STEP AND OR XOR NOT ABS LEN SQR INT ASC CHR VAL STR MID
- ARG CALL RND LEFT RIGHT DOT SGN SIN FREE PI FN TAN COS POP PEEK INP LN EXP ATN
+ BASIC commands :
+
+ LET NEXT IF GOTO GOSUB RETURN READ DATA FOR CLS INPUT DIM STOP END RESTORE
+ REM CLEAR PUSH POKE PRINT OUT ERROR USR CURSOR NORMAL INVERSE PLOT UNPLOT
+ ELSE WIPE COLOUR CENTRE RANGE DRAW CIRCLE LOAD SAVE VERIFY HLOAD HSAVE HVERIFY
+ DLOAD DSAVE DVERIFY MERGE CAT RUN NEW ON LIST DEF MON GWIND TWIND UNDER
+ SPC OFF TAB THEN TO STEP AND OR XOR NOT ABS LEN SQR INT ASC CHR VAL STR MID
+ ARG CALL RND LEFT RIGHT DOT SGN SIN FREE PI FN TAN COS POP PEEK INP LN EXP ATN
****************************************************************************/
#include "emu.h"
@@ -38,19 +38,19 @@ public:
{ }
required_device<cpu_device> m_maincpu;
-
- virtual void palette_init();
+
+ virtual void palette_init();
virtual void machine_reset() { m_maincpu->set_pc(0x8000); }
-
+
DECLARE_READ8_MEMBER(lola8a_port_a_r);
DECLARE_WRITE8_MEMBER(lola8a_port_b_w);
DECLARE_WRITE_LINE_MEMBER(crtc_vsync);
DECLARE_READ_LINE_MEMBER(cass_r);
DECLARE_WRITE_LINE_MEMBER(cass_w);
-
+
DECLARE_READ8_MEMBER(keyboard_r);
-
-private:
+
+private:
UINT8 m_portb;
required_device<cassette_image_device> m_cass;
};
@@ -58,24 +58,24 @@ private:
static ADDRESS_MAP_START(lola8a_mem, AS_PROGRAM, 8, lola8a_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0x1fff ) AM_RAM // 6264 at G45
- AM_RANGE( 0x2000, 0x3fff ) AM_RAM // 6264 at F45
- // empty place for 6264 at E45
- // empty place for 6264 at D45
+ AM_RANGE( 0x2000, 0x3fff ) AM_RAM // 6264 at F45
+ // empty place for 6264 at E45
+ // empty place for 6264 at D45
AM_RANGE( 0x8000, 0x9fff ) AM_ROM // 2764A at B45
AM_RANGE( 0xa000, 0xbfff ) AM_ROM // 2764A at C45
- AM_RANGE( 0xc000, 0xdfff ) AM_ROM // 2764A at H67
+ AM_RANGE( 0xc000, 0xdfff ) AM_ROM // 2764A at H67
AM_RANGE( 0xe000, 0xffff ) AM_RAM // 6264 at G67
ADDRESS_MAP_END
static ADDRESS_MAP_START(lola8a_io, AS_IO, 8, lola8a_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x80, 0x80) AM_DEVWRITE(AY8910_TAG, ay8910_device, address_w)
- AM_RANGE(0x84, 0x84) AM_DEVREADWRITE(AY8910_TAG, ay8910_device, data_r, data_w)
- AM_RANGE(0x88, 0x88) AM_READ(keyboard_r)
-
+ AM_RANGE(0x84, 0x84) AM_DEVREADWRITE(AY8910_TAG, ay8910_device, data_r, data_w)
+ AM_RANGE(0x88, 0x88) AM_READ(keyboard_r)
+
AM_RANGE(0x90, 0x90) AM_DEVREADWRITE(HD46505SP_TAG, mc6845_device, status_r, address_w)
AM_RANGE(0x92, 0x92) AM_DEVREADWRITE(HD46505SP_TAG, mc6845_device, register_r, register_w)
-
+
ADDRESS_MAP_END
/* Input ports */
@@ -99,8 +99,8 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_2")
+
+ PORT_START("line_2")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4)
@@ -109,8 +109,8 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_3")
+
+ PORT_START("line_3")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5)
@@ -119,18 +119,18 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_4")
+
+ PORT_START("line_4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N)
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_5")
+
+ PORT_START("line_5")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8)
@@ -139,8 +139,8 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_6")
+
+ PORT_START("line_6")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH)// Z"
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0)
@@ -149,28 +149,28 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_7")
+
+ PORT_START("line_7")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) // C"
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP)
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) // =
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) // =
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) // S"
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) // C'
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // ;
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_8")
+
+ PORT_START("line_8")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH)// /
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) // ????
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP)
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // :
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // :
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
-
- PORT_START("line_9")
+
+ PORT_START("line_9")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) // return
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) // ????
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) // ????
@@ -187,7 +187,7 @@ void lola8a_state::palette_init()
int i;
for(i=0;i<8;i++) {
- palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
+ palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
}
}
@@ -201,7 +201,7 @@ static MC6845_UPDATE_ROW( lola8a_update_row )
{
UINT16 addr = 0xa000 + sx*8 + ra + ma * 8;
UINT8 code = program.read_byte(addr);
-
+
for (int x = 0; x <= 8; x++)
{
int color = BIT(code, 7-x) ? 7 : 0;
@@ -241,15 +241,15 @@ READ8_MEMBER(lola8a_state::keyboard_r)
"line_8", "line_9", NULL, NULL,
NULL,NULL,NULL,NULL
};
-
- if( keynames[m_portb & 0x0f])
+
+ if( keynames[m_portb & 0x0f])
return ioport(keynames[m_portb & 0x0f])->read();
return 0xff;
}
WRITE_LINE_MEMBER(lola8a_state::crtc_vsync)
{
- m_maincpu->set_input_line(I8085_RST75_LINE, state? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(I8085_RST75_LINE, state? ASSERT_LINE : CLEAR_LINE);
}
static MC6845_INTERFACE( hd46505sp_intf )
@@ -283,12 +283,12 @@ static MACHINE_CONFIG_START( lola8a, lola8a_state )
MCFG_CPU_IO_MAP(lola8a_io)
MCFG_I8085A_SID(READLINE(lola8a_state, cass_r))
MCFG_I8085A_SOD(WRITELINE(lola8a_state, cass_w))
-
+
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD(AY8910_TAG, AY8910, XTAL_4_9152MHz / 4)
MCFG_SOUND_CONFIG(psg_intf)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0)
-
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50)
@@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( lola8a, lola8a_state )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
MCFG_MC6845_ADD(HD46505SP_TAG, HD6845, "screen", XTAL_8MHz / 8, hd46505sp_intf) // HD6845 == HD46505S
- MCFG_PALETTE_LENGTH(8)
+ MCFG_PALETTE_LENGTH(8)
/* Cassette */
MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
@@ -315,6 +315,5 @@ ROM_END
/* Driver */
-/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1986, lola8a, 0, 0, lola8a, lola8a, driver_device, 0, "Institut Ivo Lola Ribar", "Lola 8A", GAME_NOT_WORKING)
-
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP( 1986, lola8a, 0, 0, lola8a, lola8a, driver_device, 0, "Institut Ivo Lola Ribar", "Lola 8A", GAME_NOT_WORKING)