Skip to content
This repository was archived by the owner on Sep 18, 2021. It is now read-only.

Commit 775d928

Browse files
RobbbertRobbbert
Robbbert
authored and
Robbbert
committed
homelab3, homelab4 - connected up the keyboard, systems are usable.
1 parent 0a9277c commit 775d928

File tree

1 file changed

+205
-30
lines changed

1 file changed

+205
-30
lines changed

src/mess/drivers/homelab.c

+205-30
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
/***************************************************************************
22
3-
Homelab driver by Miodrag Milanovic
3+
Homelab driver by Miodrag Milanovic
44
5-
31/08/2008 Preliminary driver.
5+
31/08/2008 Preliminary driver.
66
77
8-
ToDO:
9-
- Devices, speaker
10-
- Keyboard and cursor on homelab3 & up
11-
- Cursor on homelab2
12-
- Can't press same key twice in a row on homelab2
13-
- Brailab4 doesn't seem to do anything
8+
ToDO:
9+
- Devices, speaker
10+
- Keyboard and cursor on homelab3 & up
11+
- Cursor on homelab2
12+
- Can't press same key twice in a row on homelab2
13+
- Brailab4 doesn't seem to do anything
14+
15+
Note: the speed of the homelab3 is largely controlled by the time taken
16+
to draw a screen.
1417
1518
****************************************************************************/
1619

1720
#include "emu.h"
1821
#include "cpu/z80/z80.h"
22+
#include "sound/speaker.h"
23+
1924

2025
//#define MACHINE_RESET_MEMBER(name) void name::machine_reset()
2126
//#define MACHINE_START_MEMBER(name) void name::machine_start()
@@ -26,21 +31,21 @@ class homelab_state : public driver_device
2631
public:
2732
homelab_state(const machine_config &mconfig, device_type type, const char *tag)
2833
: driver_device(mconfig, type, tag),
29-
m_maincpu(*this, "maincpu")//,
30-
//m_speaker(*this, SPEAKER_TAG)
31-
,
32-
m_p_videoram(*this, "p_videoram"){ }
34+
m_maincpu(*this, "maincpu"),
35+
m_speaker(*this, SPEAKER_TAG),
36+
m_p_videoram(*this, "videoram"){ }
3337

34-
required_device<cpu_device> m_maincpu;
35-
//required_device<device_t> m_speaker;
36-
DECLARE_READ8_MEMBER( e802_r );
3738
DECLARE_READ8_MEMBER( key_r );
3839
DECLARE_WRITE8_MEMBER( key_w );
39-
required_shared_ptr<const UINT8> m_p_videoram;
40+
DECLARE_WRITE8_MEMBER( io_w );
4041
const UINT8 *m_p_chargen;
4142
//virtual void machine_reset();
4243
//virtual void machine_start();
4344
virtual void video_start();
45+
required_device<cpu_device> m_maincpu;
46+
optional_device<device_t> m_speaker;
47+
required_shared_ptr<const UINT8> m_p_videoram;
48+
private:
4449
};
4550

4651

@@ -66,14 +71,13 @@ READ8_MEMBER( homelab_state::key_r ) // offset 27F-2FE
6671
return data;
6772
}
6873

69-
READ8_MEMBER( homelab_state::e802_r ) // unknown
74+
WRITE8_MEMBER( homelab_state::io_w )
7075
{
71-
return machine().rand() & 1;
76+
speaker_level_w(m_speaker, BIT(offset, 7) );
7277
}
7378

7479

7580

76-
7781
/* Address maps */
7882
static ADDRESS_MAP_START(homelab2_mem, AS_PROGRAM, 8, homelab_state)
7983
AM_RANGE( 0x0000, 0x07ff ) AM_ROM // ROM 1
@@ -85,18 +89,41 @@ static ADDRESS_MAP_START(homelab2_mem, AS_PROGRAM, 8, homelab_state)
8589
AM_RANGE( 0x3000, 0x37ff ) AM_ROM // Empty
8690
AM_RANGE( 0x3800, 0x3fff ) AM_READWRITE(key_r,key_w)
8791
AM_RANGE( 0x4000, 0x7fff ) AM_RAM
88-
AM_RANGE( 0xc000, 0xc3ff ) AM_RAM AM_SHARE("p_videoram") AM_MIRROR(0x3c00) // Video RAM 1K
92+
AM_RANGE( 0xc000, 0xc3ff ) AM_RAM AM_SHARE("videoram") AM_MIRROR(0x3c00) // Video RAM 1K
8993
ADDRESS_MAP_END
9094

9195
static ADDRESS_MAP_START(homelab3_mem, AS_PROGRAM, 8, homelab_state)
9296
AM_RANGE( 0x0000, 0x3fff ) AM_ROM
9397
AM_RANGE( 0x4000, 0x7fff ) AM_RAM
94-
AM_RANGE( 0xe802, 0xe802 ) AM_READ(e802_r)
98+
AM_RANGE( 0xe800, 0xe800 ) AM_READ_PORT("X00")
99+
AM_RANGE( 0xe801, 0xe801 ) AM_READ_PORT("X01")
100+
AM_RANGE( 0xe802, 0xe802 ) AM_READ_PORT("X02")
101+
AM_RANGE( 0xe803, 0xe803 ) AM_READ_PORT("X03")
102+
AM_RANGE( 0xe804, 0xe804 ) AM_READ_PORT("X04")
103+
AM_RANGE( 0xe805, 0xe805 ) AM_READ_PORT("X05")
104+
AM_RANGE( 0xe806, 0xe806 ) AM_READ_PORT("X06")
105+
AM_RANGE( 0xe807, 0xe807 ) AM_READ_PORT("X07")
106+
AM_RANGE( 0xe808, 0xe808 ) AM_READ_PORT("X08")
107+
AM_RANGE( 0xe809, 0xe809 ) AM_READ_PORT("X09")
108+
AM_RANGE( 0xe80a, 0xe80a ) AM_READ_PORT("X0A")
109+
AM_RANGE( 0xe80b, 0xe80b ) AM_READ_PORT("X0B")
110+
AM_RANGE( 0xe80c, 0xe80c ) AM_READ_PORT("X0C")
111+
AM_RANGE( 0xe80d, 0xe80d ) AM_READ_PORT("X0D")
112+
AM_RANGE( 0xe80e, 0xe80e ) AM_READ_PORT("X0E")
113+
AM_RANGE( 0xe80f, 0xe80f ) AM_READ_PORT("X0F")
114+
AM_RANGE( 0xe810, 0xe810 ) AM_READ_PORT("X10")
115+
AM_RANGE( 0xe811, 0xe811 ) AM_READ_PORT("X11")
116+
AM_RANGE( 0xe812, 0xe812 ) AM_READ_PORT("X12")
117+
AM_RANGE( 0xe813, 0xe813 ) AM_READ_PORT("X13")
95118
AM_RANGE( 0xe880, 0xe880 ) AM_READNOP // reads this then throws result away
96-
//AM_RANGE( 0xe000, 0xefff ) AM_RAM // Keyboard
97-
AM_RANGE( 0xf000, 0xf7ff ) AM_RAM AM_SHARE("p_videoram") AM_MIRROR(0x0800) // Video RAM 2K
119+
AM_RANGE( 0xf000, 0xf7ff ) AM_RAM AM_SHARE("videoram") AM_MIRROR(0x0800) // Video RAM 2K
98120
ADDRESS_MAP_END
99121

122+
static ADDRESS_MAP_START(homelab3_io, AS_IO, 8, homelab_state)
123+
AM_RANGE( 0x0000, 0xffff ) AM_WRITE(io_w)
124+
ADDRESS_MAP_END
125+
126+
100127
/* Input ports */
101128
static INPUT_PORTS_START( homelab )
102129
PORT_START("LINE0")
@@ -175,6 +202,147 @@ static INPUT_PORTS_START( homelab )
175202
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RALT) PORT_CODE(KEYCODE_LALT) PORT_CHAR('_')
176203
INPUT_PORTS_END
177204

205+
static INPUT_PORTS_START( homelab3 )
206+
PORT_START("X00")
207+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN)
208+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
209+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT)
210+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT)
211+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
212+
213+
PORT_START("X01")
214+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
215+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
216+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) // A
217+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) // D
218+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
219+
220+
PORT_START("X02")
221+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_VBLANK("screen")
222+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT)
223+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT)
224+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK)
225+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
226+
227+
PORT_START("X03")
228+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) // nothing
229+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Graphic") PORT_CODE(KEYCODE_RCONTROL)
230+
PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED)
231+
232+
PORT_START("X04")
233+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
234+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
235+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
236+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
237+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
238+
239+
PORT_START("X05")
240+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
241+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
242+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
243+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
244+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
245+
246+
PORT_START("X06")
247+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
248+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
249+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(':') PORT_CHAR('*')
250+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
251+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
252+
253+
PORT_START("X07")
254+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
255+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('=') PORT_CHAR('-')
256+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
257+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') PORT_CHAR('/')
258+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
259+
260+
PORT_START("X08")
261+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('@')
262+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
263+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1)
264+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
265+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
266+
267+
PORT_START("X09")
268+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
269+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
270+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
271+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2)
272+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
273+
274+
PORT_START("X0A")
275+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
276+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
277+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
278+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
279+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
280+
281+
PORT_START("X0B")
282+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
283+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
284+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
285+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
286+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
287+
288+
PORT_START("X0C")
289+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
290+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
291+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3)
292+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4)
293+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
294+
295+
PORT_START("X0D")
296+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
297+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
298+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
299+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
300+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
301+
302+
PORT_START("X0E")
303+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
304+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
305+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5)
306+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
307+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
308+
309+
PORT_START("X0F")
310+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
311+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X')
312+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
313+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
314+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
315+
316+
PORT_START("X10")
317+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) // a`
318+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) // a
319+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) // b
320+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) // c
321+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
322+
323+
PORT_START("X11")
324+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) // d
325+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) // e
326+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) // f
327+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) // g
328+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
329+
330+
PORT_START("X12")
331+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) // h
332+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) // i
333+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) // j
334+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) // k
335+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
336+
337+
PORT_START("X13")
338+
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) // l
339+
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) // m
340+
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) // n
341+
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) // o
342+
PORT_BIT(0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
343+
INPUT_PORTS_END
344+
345+
178346
VIDEO_START_MEMBER( homelab_state )
179347
{
180348
m_p_chargen = memregion("chargen")->base();
@@ -273,10 +441,11 @@ static MACHINE_CONFIG_START( homelab, homelab_state )
273441
/* basic machine hardware */
274442
MCFG_CPU_ADD("maincpu", Z80, 3000000)
275443
MCFG_CPU_PROGRAM_MAP(homelab2_mem)
276-
MCFG_SCREEN_ADD("screen", RASTER)
277-
MCFG_SCREEN_REFRESH_RATE(50)
278444

279445
/* video hardware */
446+
MCFG_SCREEN_ADD("screen", RASTER)
447+
MCFG_SCREEN_REFRESH_RATE(50)
448+
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
280449
MCFG_SCREEN_SIZE(40*8, 25*8)
281450
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1)
282451
MCFG_SCREEN_UPDATE_STATIC( homelab )
@@ -289,11 +458,17 @@ static MACHINE_CONFIG_DERIVED( homelab3, homelab )
289458
/* basic machine hardware */
290459
MCFG_CPU_MODIFY("maincpu")
291460
MCFG_CPU_PROGRAM_MAP(homelab3_mem)
461+
MCFG_CPU_IO_MAP(homelab3_io)
292462

293463
MCFG_SCREEN_MODIFY("screen")
294464
MCFG_SCREEN_SIZE(64*8, 32*8)
295465
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
296466
MCFG_SCREEN_UPDATE_STATIC( homelab3 )
467+
468+
/* sound hardware */
469+
MCFG_SPEAKER_STANDARD_MONO("mono")
470+
MCFG_SOUND_ADD(SPEAKER_TAG, SPEAKER_SOUND, 0)
471+
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
297472
MACHINE_CONFIG_END
298473

299474
/* ROM definition */
@@ -341,8 +516,8 @@ ROM_END
341516

342517
/* Driver */
343518

344-
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
345-
COMP( 1982, homelab2, 0, 0, homelab, homelab, homelab, "Jozsef and Endre Lukacs", "Homelab 2 / Aircomp 16", GAME_NOT_WORKING | GAME_NO_SOUND)
346-
COMP( 1983, homelab3, homelab2,0, homelab3, homelab, homelab, "Jozsef and Endre Lukacs", "Homelab 3", GAME_NOT_WORKING | GAME_NO_SOUND)
347-
COMP( 1984, homelab4, homelab2,0, homelab3, homelab, homelab, "Jozsef and Endre Lukacs", "Homelab 4", GAME_NOT_WORKING | GAME_NO_SOUND)
348-
COMP( 1984, brailab4, homelab2,0, homelab3, homelab, homelab, "Jozsef and Endre Lukacs", "Brailab 4", GAME_NOT_WORKING | GAME_NO_SOUND)
519+
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
520+
COMP( 1982, homelab2, 0, 0, homelab, homelab, homelab, "Jozsef and Endre Lukacs", "Homelab 2 / Aircomp 16", GAME_NOT_WORKING | GAME_NO_SOUND)
521+
COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, homelab, "Jozsef and Endre Lukacs", "Homelab 3", GAME_NOT_WORKING | GAME_NO_SOUND)
522+
COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, homelab, "Jozsef and Endre Lukacs", "Homelab 4", GAME_NOT_WORKING | GAME_NO_SOUND)
523+
COMP( 1984, brailab4, homelab2, 0, homelab3, homelab3, homelab, "Jozsef and Endre Lukacs", "Brailab 4", GAME_NOT_WORKING | GAME_NO_SOUND)

0 commit comments

Comments
 (0)