1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#include "emu.h"
#include "includes/tmc1800.h"
#include "cpu/cosmac/cosmac.h"
#include "video/cdp1861.h"
#include "sound/cdp1864.h"
#include "machine/rescap.h"
/* Telmac 1800 */
static CDP1861_INTERFACE( tmc1800_cdp1861_intf )
{
CDP1802_TAG,
SCREEN_TAG,
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1)
};
/* Telmac 2000 */
READ_LINE_MEMBER( tmc2000_state::rdata_r )
{
return BIT(m_color, 2);
}
READ_LINE_MEMBER( tmc2000_state::bdata_r )
{
return BIT(m_color, 1);
}
READ_LINE_MEMBER( tmc2000_state::gdata_r )
{
return BIT(m_color, 0);
}
static CDP1864_INTERFACE( tmc2000_cdp1864_intf )
{
CDP1802_TAG,
SCREEN_TAG,
CDP1864_INTERLACED,
DEVCB_DRIVER_LINE_MEMBER(tmc2000_state, rdata_r),
DEVCB_DRIVER_LINE_MEMBER(tmc2000_state, bdata_r),
DEVCB_DRIVER_LINE_MEMBER(tmc2000_state, gdata_r),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1),
DEVCB_NULL,
RES_K(1.21), // RL64
RES_K(2.05), // RL63
RES_K(2.26), // RL61
RES_K(3.92) // RL65 (also RH62 (2K pot) in series, but ignored here)
};
/* OSCOM Nano */
static CDP1864_INTERFACE( nano_cdp1864_intf )
{
CDP1802_TAG,
SCREEN_TAG,
CDP1864_INTERLACED,
DEVCB_LINE_VCC,
DEVCB_LINE_VCC,
DEVCB_LINE_VCC,
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT),
DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1),
DEVCB_NULL,
RES_K(1.21), // R18 unconfirmed
0, // not connected
0, // not connected
0 // not connected
};
/* OSM-200 */
UINT32 osc1000b_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
/* Machine Drivers */
MACHINE_CONFIG_FRAGMENT( tmc1800_video )
MCFG_CDP1861_SCREEN_ADD(CDP1861_TAG, SCREEN_TAG, XTAL_1_75MHz)
MCFG_CDP1861_ADD(CDP1861_TAG, XTAL_1_75MHz, tmc1800_cdp1861_intf)
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( osc1000b_video )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_UPDATE_DRIVER(osc1000b_state, screen_update)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(320, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( tmc2000_video )
MCFG_CDP1864_SCREEN_ADD(SCREEN_TAG, XTAL_1_75MHz)
MCFG_SCREEN_UPDATE_DEVICE(CDP1864_TAG, cdp1864_device, screen_update)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_CDP1864_ADD(CDP1864_TAG, XTAL_1_75MHz, tmc2000_cdp1864_intf)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( nano_video )
MCFG_CDP1864_SCREEN_ADD(SCREEN_TAG, XTAL_1_75MHz)
MCFG_SCREEN_UPDATE_DEVICE(CDP1864_TAG, cdp1864_device, screen_update)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_CDP1864_ADD(CDP1864_TAG, XTAL_1_75MHz, nano_cdp1864_intf)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
|