6
#define ADDRESS_MAP_MODERN
9
#include "cpu/m6502/m6502.h"
10
#include "formats/basicdsk.h"
11
#include "imagedev/cassette.h"
12
#include "imagedev/flopdrv.h"
13
#include "machine/6850acia.h"
14
#include "machine/6821pia.h"
15
#include "machine/ram.h"
16
#include "sound/discrete.h"
17
#include "sound/beep.h"
19
#define SCREEN_TAG "screen"
20
#define M6502_TAG "m6502"
21
#define DISCRETE_TAG "discrete"
24
#define UK101_X1 XTAL_8MHz
26
#define OSI600_VIDEORAM_SIZE 0x400
27
#define OSI630_COLORRAM_SIZE 0x400
29
class sb2m600_state : public driver_device
32
sb2m600_state(const machine_config &mconfig, device_type type, const char *tag)
33
: driver_device(mconfig, type, tag),
34
m_maincpu(*this, M6502_TAG),
35
m_cassette(*this, CASSETTE_TAG),
36
m_discrete(*this, DISCRETE_TAG),
40
required_device<cpu_device> m_maincpu;
41
required_device<cassette_image_device> m_cassette;
42
optional_device<device_t> m_discrete;
43
required_device<device_t> m_ram;
45
virtual void machine_start();
47
virtual void video_start();
48
virtual bool screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
50
DECLARE_READ8_MEMBER( keyboard_r );
51
DECLARE_WRITE8_MEMBER( keyboard_w );
52
DECLARE_WRITE8_MEMBER( ctrl_w );
53
DECLARE_READ_LINE_MEMBER( cassette_rx );
54
DECLARE_WRITE_LINE_MEMBER( cassette_tx );
69
class c1p_state : public sb2m600_state
72
c1p_state(const machine_config &mconfig, device_type type, const char *tag)
73
: sb2m600_state(mconfig, type, tag),
74
m_beep(*this, BEEPER_TAG)
77
required_device<device_t> m_beep;
79
virtual void machine_start();
81
DECLARE_WRITE8_MEMBER( osi630_ctrl_w );
82
DECLARE_WRITE8_MEMBER( osi630_sound_w );
85
class c1pmf_state : public c1p_state
88
c1pmf_state(const machine_config &mconfig, device_type type, const char *tag)
89
: c1p_state(mconfig, type, tag),
90
m_floppy(*this, FLOPPY_0)
93
required_device<device_t> m_floppy;
95
virtual void machine_start();
97
DECLARE_READ8_MEMBER( osi470_pia_pa_r );
98
DECLARE_WRITE8_MEMBER( osi470_pia_pa_w );
99
DECLARE_WRITE8_MEMBER( osi470_pia_pb_w );
100
DECLARE_WRITE_LINE_MEMBER( osi470_pia_cb2_w );
103
class uk101_state : public sb2m600_state
106
uk101_state(const machine_config &mconfig, device_type type, const char *tag)
107
: sb2m600_state(mconfig, type, tag)
110
virtual bool screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
112
DECLARE_WRITE8_MEMBER( keyboard_w );
115
/* ---------- defined in video/osi.c ---------- */
117
MACHINE_CONFIG_EXTERN( osi600_video );
118
MACHINE_CONFIG_EXTERN( uk101_video );
119
MACHINE_CONFIG_EXTERN( osi630_video );