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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
/***************************************************************************
VAX-11
VAX-11/785
-------
M7459 TRS, TERMINATOR & SILO
M7460 KA785, SBL,CUP SBI LOW BITS
M7461 KA785, SBH,SBI
M7462 KA785, CAM, CACHE ADDRESS MATRIX
M7463 KA785, CDM, CACHE DATA MATRIX
M7464 KA785, TBM, CPU TRANSLATION BUFFER
M7465 KA785, IDP, CPU INSTRUCTION DATA
M7466 KA785, IRC, CPU INSTRUCTION DECODE
M7467 KA785, DPB, CPU DATA PATH B
M7468 KA785, DEP, CPU DATA PATH E
M7469 KA785, DDP, CPU DATA PATH D
M7470 KA785, DCP, CPU DATA PATH C
M7471 KA785, DAP, CPU DATA PATH A
M7472 KA785, CEW (CONDITION CODES, EXCEP
M7473 KA785, ICL (INTERRUPT CONTROL, LOW
M7474 KA785, CLK (CPU CLOCK)
M7475 KA785, JCS, JOINT CONTROL STORE
M7476 KA785, USC, MICRO SEQUENCER CONTROL
M7477 KA785, CIB, CPU CONSOLE INTERFACE
+----------FP785--------+
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
M7459 M7460 M7461 M7462 M7463 M7464 M7465 M7466 M7467 M7468 M7469 M7470 M7471 M7472 M7473 M7474 M7475 M7475 UNUSED M7476 M7540 M7541 M7542 M7543 M7544 M7477
TRS SBL SBH CAM CDM TBM IDP IRC DBP DEP DDP DCP DAP CEH ICL CLK JCS JCS USC FNM FMH FML FAD FCT CIB
VAX-11/780
-------
M8237 TERMINATOR SILO
M8218 SBL LOW BIT INTERFACE
M8219 SBH HIGH BITS INTERFACE
M8220 CAM CPU CACHE ADAPTER MATRIX
M8221 CDM CPU CACHE DATA MATRIX
M8222 TBM CPU TRANSLATION BUFFER MATRIX
M8223 IRC CPU INSTRUCT DECODE&CLOCKS
M8224 IDP CPU INSTRUCTION DATA PATH
M8225 DBP DATA PATH B
M8226 DEP DATA PATH E
M8227 DDP DATA PATH D
M8228 DCP DATA PATH C
M8229 DAP DATA PATH A
M8230 CEH CPU CONDITION CODE
M8231 ICL CPU TRAPS AND INTERRUPT CONTROL
M8232 CLK CPU CLOCK
M8238 WCS KU780-A 2K WCS
M8234 PCS KA780-A PCS, PROM CONTROL STORE
M8235 USC MICRO SEQUENCE CONTROL
M8236 CIB CONSOLE INTERFACE
+----------FP780--------+
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
M8237 M8218 M8219 M8220 M8221 M8222 M8223 M8224 M8225 M8226 M8227 M8228 M8229 M8230 M8231 M8232 M8233 M8233 M8234 M8235 M8285 M8286 M8287 M8288 M8289 M8236
TRS SBL SBH CAM CDM TBM IDP IRC DBP DEP DDP DCP DAP CEH ICL CLK or or PCS USC FNM FMH FML FAD FCT CIB
M8238 M8238
02/08/2012 Skeleton driver.
****************************************************************************/
#include "emu.h"
#include "cpu/t11/t11.h"
#include "machine/terminal.h"
#include "machine/rx01.h"
class vax11_state : public driver_device
{
public:
vax11_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_terminal(*this, TERMINAL_TAG)
{ }
required_device<cpu_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
DECLARE_READ16_MEMBER( term_r );
DECLARE_READ16_MEMBER( term_tx_status_r );
DECLARE_READ16_MEMBER( term_rx_status_r );
DECLARE_WRITE16_MEMBER( term_w );
DECLARE_WRITE8_MEMBER( kbd_put );
UINT8 m_term_data;
UINT16 m_term_status;
};
WRITE16_MEMBER(vax11_state::term_w)
{
m_terminal->write(space, 0, data);
}
READ16_MEMBER(vax11_state::term_r)
{
m_term_status = 0x0000;
return m_term_data;
}
READ16_MEMBER(vax11_state::term_tx_status_r)
{ // always ready
return 0xffff;
}
READ16_MEMBER(vax11_state::term_rx_status_r)
{
return m_term_status;
}
static ADDRESS_MAP_START(vax11_mem, AS_PROGRAM, 16, vax11_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0xbfff ) AM_RAM // RAM
AM_RANGE( 0xc000, 0xd7ff ) AM_ROM
AM_RANGE( 0xfe78, 0xfe7b ) AM_DEVREADWRITE("rx01", rx01_device, read, write)
AM_RANGE( 0xff70, 0xff71 ) AM_READ(term_rx_status_r)
AM_RANGE( 0xff72, 0xff73 ) AM_READ(term_r)
AM_RANGE( 0xff74, 0xff75 ) AM_READ(term_tx_status_r)
AM_RANGE( 0xff76, 0xff77 ) AM_WRITE(term_w)
ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( vax11 )
INPUT_PORTS_END
static const struct t11_setup vax11_data =
{
0 << 13
};
WRITE8_MEMBER( vax11_state::kbd_put )
{
m_term_data = data;
m_term_status = 0xffff;
}
static GENERIC_TERMINAL_INTERFACE( terminal_intf )
{
DEVCB_DRIVER_MEMBER(vax11_state, kbd_put)
};
static MACHINE_CONFIG_START( vax11, vax11_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here
MCFG_CPU_CONFIG(vax11_data)
MCFG_CPU_PROGRAM_MAP(vax11_mem)
/* video hardware */
MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
MCFG_RX01_ADD("rx01")
MACHINE_CONFIG_END
ROM_START( vax785 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
// M7477
ROMX_LOAD( "23-144f1-00.e56", 0xc000, 0x0400, CRC(99c1f117) SHA1(f05b6e97bf258392656058864abc1177379194da), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-145f1-00.e68", 0xc000, 0x0400, CRC(098b63d2) SHA1(c2742aaccdac2921e1704c835ee5cef242cd7308), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROMX_LOAD( "23-146f1-00.e84", 0xc001, 0x0400, CRC(0f5f5d7b) SHA1(2fe325d2a78a8ce5146317cc39c084c4967c323c), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-147f1-00.e72", 0xc001, 0x0400, CRC(bde386f2) SHA1(fcb5a1fa505912c5f44781619c9508cd142721e3), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROMX_LOAD( "23-148f1-00.e58", 0xc800, 0x0400, CRC(fe4c61e3) SHA1(4641a236761692a8f45b14ed6a73f535d57c2daa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-149f1-00.e70", 0xc800, 0x0400, CRC(a13f5f8a) SHA1(6a9d3b5a71a3249f3b9491d541c9854e071a320c), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROMX_LOAD( "23-150f1-00.e87", 0xc801, 0x0400, CRC(ca8d6419) SHA1(6d9c3e1e2f5a35f92c82240fcede14645aa83340), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-151f1-00.e74", 0xc801, 0x0400, CRC(58ce48d3) SHA1(230dbcab1470752befb6733a89e3612ad7fba10d), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROMX_LOAD( "23-236f1-00.e57", 0xd000, 0x0400, CRC(6f23470a) SHA1(d90a0bc56f04c2830f8cfb6b870db207b96e75b1), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-237f1-00.e69", 0xd000, 0x0400, CRC(2bf8cf0b) SHA1(6db79c5392b265e38b5b8b386528d7c138d995e9), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROMX_LOAD( "23-238f1-00.e85", 0xd001, 0x0400, CRC(ff569f71) SHA1(05985396047fb4639959000a1abe50d2f184deaa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1))
ROMX_LOAD( "23-239f1-00.e73", 0xd001, 0x0400, CRC(cec7abe3) SHA1(8b8b52bd46340c58efa5adef3f306e0cdcb77520), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1))
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1984, vax785, 0, 0, vax11, vax11, driver_device, 0, "Digital Equipment Corporation", "VAX-11/785", GAME_NOT_WORKING | GAME_NO_SOUND)
|