summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tekxp33x.cpp
blob: de2e0d3aad02413f8e833067976fcc22f7db460a (plain) (blame)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// license:BSD-3-Clause
// copyright-holders:Justin Kerk
/***************************************************************************

    Tektronix TekXpress XP33x series X terminals

    Skeleton driver.

****************************************************************************/

/*

    TODO:

    - everything

    Technical info:
    https://www.linux-mips.org/wiki/Tektronix_TekXPress_XP338
    https://web.archive.org/web/20061013084616/http://tekxp-linux.hopto.org/pmwiki/pmwiki.php/Hardware/XP33x
    http://bio.gsi.de/DOCS/NCD/xp.html

    CPU: IDT 79R3052E (MIPS I R3000 embedded core. Big Endian. With MMU, without FPU.)
    Graphic Chipset: Texas Instruments (34020AGBL-40) TI 34010 (TIGA)
    Graphic RAMDAC: Brooktree BT458LPJ135 (Supported in XFree86)
    RAM: 4MB onboard, upgradeable to 52MB, 3 slots for 5V FPM NoParity SIMMs
    ROM: 256Kb, 2 x 27c1024 (64Kx16), with BootMonitor
    Peripherals:
        1x Ethernet Port (AUI and UTP) -- AMD AM79C98 Chipset
        2x Serial Ports -- Philips SCC2692 Dual UART chipset
        Keyboard and Mouse controller is a generic PC-Style i8742 with Phoenix BIOS.
        1x "ERGO" Port (Combined Monitor, Keyboard, Mouse)
    16K (2K*8) EEPROM is SEEQ NQ2816A-250, AT28C16 compatible. Contains Boot Monitor settings. The content is compressed.
    Micron MT56C0816 - ??? Flash

*/


#include "emu.h"
#include "cpu/mips/mips1.h"
#include "cpu/tms34010/tms34010.h"
#include "emupal.h"
#include "screen.h"


#define SCREEN_TAG "screen"

class tekxp330_state : public driver_device
{
public:
	tekxp330_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag) { }

	void tekxp330(machine_config &config);

private:
	virtual void machine_start() override;

	virtual void video_start() override;
	uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
	void cpu_map(address_map &map);
	void tms_map(address_map &map);
};

/* Memory Maps */

void tekxp330_state::cpu_map(address_map &map)
{
	map(0x00000000, 0x003fffff).ram();
	map(0x1fc00000, 0x1fdfffff).rom().region("maincpu", 0);
}

void tekxp330_state::tms_map(address_map &map)
{
}

/* Input Ports */

static INPUT_PORTS_START( tekxp330 )
INPUT_PORTS_END

/* Video */

void tekxp330_state::video_start()
{
}

uint32_t tekxp330_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
	return 0;
}

/* Machine Initialization */

void tekxp330_state::machine_start()
{
}

/* Machine Driver */

MACHINE_CONFIG_START(tekxp330_state::tekxp330)
	/* basic machine hardware */
	r3052e_device &maincpu(R3052E(config, "maincpu", XTAL(20'000'000))); /* IDT 79R3052E, clock unknown */
	maincpu.set_endianness(ENDIANNESS_BIG);
	maincpu.set_addrmap(AS_PROGRAM, &tekxp330_state::cpu_map);

	MCFG_DEVICE_ADD("tms", TMS34010, XTAL(40'000'000)) /* clock unknown */
	MCFG_DEVICE_PROGRAM_MAP(tms_map)

	/* video hardware */
	MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
	MCFG_SCREEN_REFRESH_RATE(60)
	MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
	MCFG_SCREEN_UPDATE_DRIVER(tekxp330_state, screen_update)
	MCFG_SCREEN_SIZE(640, 480)
	MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)

	MCFG_PALETTE_ADD("palette", 64)
MACHINE_CONFIG_END

/* ROMs */

ROM_START( tekxp330 )
	ROM_REGION( 0x200000, "maincpu", 0 )
	/* TekXpress XP300 Boot ROM V1.0  Thu Feb 6 14:50:16 PST 1992 */
	ROM_LOAD32_DWORD( "xp300.bin", 0x000000, 0x200000, CRC(9a324588) SHA1(a6e10275f8215f446be91128bab4c643693da653) )
ROM_END

/* System Drivers */

//    YEAR  NAME      PARENT  COMPAT  MACHINE   INPUT     CLASS           INIT        COMPANY      FULLNAME           FLAGS
COMP( 1992, tekxp330, 0,      0,      tekxp330, tekxp330, tekxp330_state, empty_init, "Tektronix", "TekXpress XP330", MACHINE_IS_SKELETON )