Previous 15994 Revisions Next

r9990 Tuesday 11th January, 2011 at 11:40:25 UTC by Robbbert
[ZSBC3] modernised
[src/mess/drivers]zsbc3.c

src/mess/drivers/zsbc3.c
r9989r9990
44
55        11/01/2010 Skeleton driver.
66        28/11/2010 Connected to a terminal
7        11/01/2011 Converted to Modern.
78
9****************************************************************************
10
11        Monitor commands: [] indicates optional
12
13        Bx = Boot from device x (0 to 7)
14        Dx [y] = Dump memory (hex and ascii) in range x [to y]
15        Fx y z = Fill memory x to y with z
16        Gx = Execute program at address x
17        Ix = Display IN of port x
18        Ox y = Output y to port x
19        Sx = Enter memory editing mode, press enter for next address
20        Mx y = unknown (affects memory)
21        Tx = unknown (does strange things)
22        enter = dump memory from 9000 to 907F (why?)
23
24****************************************************************************
25
26        TODO:
27        Everything really...
28
29        Devices of all kinds;
30        Use the other rom for something..
31
832****************************************************************************/
933
34#define ADDRESS_MAP_MODERN
35
1036#include "emu.h"
1137#include "cpu/z80/z80.h"
1238#include "machine/terminal.h"
r9989r9990
1642{
1743public:
1844   zsbc3_state(running_machine &machine, const driver_device_config_base &config)
19      : driver_device(machine, config) { }
45      : driver_device(machine, config),
46        m_maincpu(*this, "maincpu"),
47        m_terminal(*this, "terminal")
48   { }
2049
21   UINT8 term_data;
50   required_device<cpu_device> m_maincpu;
51   required_device<device_t> m_terminal;
52   DECLARE_READ8_MEMBER(zsbc3_28_r);
53   DECLARE_READ8_MEMBER(zsbc3_2a_r);
54   DECLARE_WRITE8_MEMBER(zsbc3_28_w);
55   DECLARE_WRITE8_MEMBER(zsbc3_kbd_put);
56   UINT8 m_term_data;
2257};
2358
2459
2560
26static WRITE8_HANDLER( zsbc3_28_w )
61WRITE8_MEMBER( zsbc3_state::zsbc3_28_w )
2762{
28   device_t *terminal = space->machine->device("terminal");
29
30   terminal_write(terminal, 0, data);
63   terminal_write(m_terminal, 0, data);
3164}
3265
33static READ8_HANDLER( zsbc3_28_r )
66READ8_MEMBER( zsbc3_state::zsbc3_28_r )
3467{
35   zsbc3_state *state = space->machine->driver_data<zsbc3_state>();
36   UINT8 ret = state->term_data;
37   state->term_data = 0;
68   UINT8 ret = m_term_data;
69   m_term_data = 0;
3870   return ret;
3971}
4072
41static READ8_HANDLER( zsbc3_2a_r )
73READ8_MEMBER( zsbc3_state::zsbc3_2a_r )
4274{
43   zsbc3_state *state = space->machine->driver_data<zsbc3_state>();
44   return 4 | ((state->term_data) ? 1 : 0);
75   return 4 | ((m_term_data) ? 1 : 0);
4576}
4677
47static ADDRESS_MAP_START(zsbc3_mem, ADDRESS_SPACE_PROGRAM, 8)
78static ADDRESS_MAP_START(zsbc3_mem, ADDRESS_SPACE_PROGRAM, 8, zsbc3_state)
4879   ADDRESS_MAP_UNMAP_HIGH
4980   AM_RANGE( 0x0000, 0x07ff ) AM_ROM
5081   AM_RANGE( 0x0800, 0xffff ) AM_RAM
5182ADDRESS_MAP_END
5283
53static ADDRESS_MAP_START( zsbc3_io , ADDRESS_SPACE_IO, 8)
84static ADDRESS_MAP_START( zsbc3_io , ADDRESS_SPACE_IO, 8, zsbc3_state)
5485   ADDRESS_MAP_UNMAP_HIGH
5586   ADDRESS_MAP_GLOBAL_MASK(0xff)
5687   AM_RANGE(0x28, 0x28) AM_READWRITE(zsbc3_28_r,zsbc3_28_w)
r9989r9990
6798{
6899}
69100
70static WRITE8_DEVICE_HANDLER( zsbc3_kbd_put )
101WRITE8_MEMBER( zsbc3_state::zsbc3_kbd_put )
71102{
72   zsbc3_state *state = device->machine->driver_data<zsbc3_state>();
73   state->term_data = data;
103   m_term_data = data;
74104}
75105
76106static GENERIC_TERMINAL_INTERFACE( zsbc3_terminal_intf )
77107{
78   DEVCB_HANDLER(zsbc3_kbd_put)
108   DEVCB_DRIVER_MEMBER(zsbc3_state, zsbc3_kbd_put)
79109};
80110
81111
r9989r9990
97127ROM_START( zsbc3 )
98128   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
99129   ROM_LOAD( "54-3002_zsbc_monitor_1.09.bin", 0x0000, 0x0800, CRC(628588e9) SHA1(8f0d489147ec8382ca007236e0a95a83b6ebcd86))
130
100131   ROM_REGION( 0x10000, "hdc", ROMREGION_ERASEFF )
101132   ROM_LOAD( "54-8622_hdc13.bin", 0x0000, 0x0400, CRC(02c7cd6d) SHA1(494281ba081a0f7fbadfc30a7d2ea18c59e55101))
102133ROM_END
r9989r9990
104135/* Driver */
105136
106137/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT     COMPANY               FULLNAME       FLAGS */
107COMP( 1980, zsbc3,  0,       0,       zsbc3,   zsbc3,    0,      "Digital Microsystems",   "ZSBC-3",      GAME_NOT_WORKING | GAME_NO_SOUND)
138COMP( 1980, zsbc3,  0,       0,       zsbc3,   zsbc3,    0,      "Digital Microsystems",   "ZSBC-3",      GAME_NOT_WORKING | GAME_NO_SOUND_HW)
108139

Previous 15994 Revisions Next


© 1998-2018 The MESS Team