Previous 199869 Revisions Next

r23788 Wednesday 19th June, 2013 at 11:07:03 UTC by Robbbert
(MESS) c900: connected to terminal.
[src/mess/drivers]c900.c

trunk/src/mess/drivers/c900.c
r23787r23788
1111
1212#include "emu.h"
1313#include "cpu/z8000/z8000.h"
14#include "machine/terminal.h"
1415
16
1517class c900_state : public driver_device
1618{
1719public:
1820   c900_state(const machine_config &mconfig, device_type type, const char *tag)
19      : driver_device(mconfig, type, tag) ,
20      m_maincpu(*this, "maincpu") { }
21      : driver_device(mconfig, type, tag),
22      m_maincpu(*this, "maincpu"),
23      m_terminal(*this, TERMINAL_TAG)
24   { }
2125
22   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
26//   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
27   DECLARE_READ16_MEMBER(key_r);
28   DECLARE_READ16_MEMBER(stat_r);
29   DECLARE_WRITE8_MEMBER(kbd_put);
30   UINT8 m_term_data;
2331   required_device<cpu_device> m_maincpu;
32   required_device<generic_terminal_device> m_terminal;
2433};
2534
2635static ADDRESS_MAP_START(c900_mem, AS_PROGRAM, 16, c900_state)
2736   AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
37   AM_RANGE(0x8000, 0xffff) AM_RAM
2838ADDRESS_MAP_END
2939
30static ADDRESS_MAP_START(c900_io, AS_IO, 8, c900_state)
40static ADDRESS_MAP_START(c900_io, AS_IO, 16, c900_state)
41   AM_RANGE(0x100, 0x101) AM_READ(stat_r)
42   AM_RANGE(0x110, 0x111) AM_READ(key_r) AM_DEVWRITE8(TERMINAL_TAG, generic_terminal_device, write, 0x00ff)
3143ADDRESS_MAP_END
3244
3345static INPUT_PORTS_START( c900 )
3446INPUT_PORTS_END
3547
36UINT32 c900_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
48//UINT32 c900_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
49//{
50//   return 0;
51//}
52
53
54READ16_MEMBER( c900_state::key_r )
3755{
38   return 0;
56   UINT8 ret = m_term_data;
57   m_term_data = 0;
58   return ret;
3959}
4060
61READ16_MEMBER( c900_state::stat_r )
62{
63   return (m_term_data) ? 5 : 4;
64}
65
66WRITE8_MEMBER( c900_state::kbd_put )
67{
68   m_term_data = data;
69}
70
71static GENERIC_TERMINAL_INTERFACE( terminal_intf )
72{
73   DEVCB_DRIVER_MEMBER(c900_state, kbd_put)
74};
75
4176static MACHINE_CONFIG_START( c900, c900_state )
4277   /* basic machine hardware */
4378   MCFG_CPU_ADD("maincpu", Z8001, 4000000)
r23787r23788
4580   MCFG_CPU_IO_MAP(c900_io)
4681
4782   /* video hardware */
48   MCFG_SCREEN_ADD("screen", RASTER)
49   MCFG_SCREEN_REFRESH_RATE(60)
50   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
51   MCFG_SCREEN_SIZE(512, 256)
52   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
53   MCFG_PALETTE_LENGTH(4)
54   MCFG_SCREEN_UPDATE_DRIVER(c900_state, screen_update)
83//   MCFG_SCREEN_ADD("screen", RASTER)
84//   MCFG_SCREEN_REFRESH_RATE(60)
85//   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
86//   MCFG_SCREEN_SIZE(512, 256)
87//   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
88//   MCFG_PALETTE_LENGTH(4)
89//   MCFG_SCREEN_UPDATE_DRIVER(c900_state, screen_update)
90   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
5591MACHINE_CONFIG_END
5692
5793ROM_START( c900 )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team