Previous 199869 Revisions Next

r33871 Sunday 14th December, 2014 at 12:55:11 UTC by Jürgen Buchmüller
Add preliminary emulation of the Rockwell A17XX chips (ROM, RAM, I/O) and fix device names in gts1 (nw)
[src/emu/cpu/pps4]pps4.c
[src/emu/machine]machine.mak r10696.c r10696.h
[src/mame]mame.mak
[src/mame/drivers]gts1.c

trunk/src/emu/cpu/pps4/pps4.c
r242382r242383
11871187 * inverted are placed on the data lines for acceptance by
11881188 * the I/O. At the same time, input data received by the I/O
11891189 * device is transferred to the accumulator inverted.
1190 *
1191 * FIXME: Is BL on the I/D:8-5 lines during the I/O cycle?
11901192 */
11911193void pps4_device::iIOL()
11921194{
1193    UINT8 ac = ~m_A & 15;
1195    UINT8 ac = ((m_B & 15) << 4) | (~m_A & 15);
11941196    m_I2 = ARG();
11951197    m_io->write_byte(m_I2, ac);
11961198    LOG(("%s: port:%02x <- %x\n", __FUNCTION__, m_I2, ac));
trunk/src/emu/machine/machine.mak
r242382r242383
13221322
13231323#-------------------------------------------------
13241324#
1325#@src/emu/machine/ra17xx.h,MACHINES += RA17XX
1326#-------------------------------------------------
1327
1328ifneq ($(filter RA17XX,$(MACHINES)),)
1329MACHINEOBJS+= $(MACHINEOBJ)/ra17xx.o
1330endif
1331
1332#-------------------------------------------------
1333#
13251334#@src/emu/machine/rf5c296.h,MACHINES += RF5C296
13261335#-------------------------------------------------
13271336
trunk/src/emu/machine/r10696.c
r242382r242383
7979   m_io_c = 0;
8080}
8181
82
8382/*************************************
8483 *
85 *  Constants
86 *
87 *************************************/
88
89/*************************************
90 *
9184 *  Command access handlers
9285 *
9386 *************************************/
trunk/src/emu/machine/r10696.h
r242382r242383
2222 *
2323 *************************************/
2424
25/* Set the writer used to update a display digit */
25/* Set the read and write group (4-bit; nibble) delegates */
2626#define MCFG_R10696_IO(_devcb_rd,_devcb_wr) \
2727    r10696_device::set_iord(*device, DEVCB_##_devcb_rd); \
2828    r10696_device::set_iowr(*device, DEVCB_##_devcb_wr);
trunk/src/mame/drivers/gts1.c
r242382r242383
6767
6868
6969#include "machine/genpin.h"
70#include "machine/ra17xx.h"
7071#include "machine/r10696.h"
7172#include "machine/r10788.h"
7273#include "cpu/pps4/pps4.h"
r242382r242383
9091
9192    DECLARE_DRIVER_INIT(gts1);
9293
94    DECLARE_READ8_MEMBER (gts1_solenoid_r);
95    DECLARE_WRITE8_MEMBER(gts1_solenoid_w);
96    DECLARE_READ8_MEMBER (gts1_switches_r);
97    DECLARE_WRITE8_MEMBER(gts1_switches_w);
9398    DECLARE_WRITE8_MEMBER(gts1_display_w);
94    DECLARE_READ8_MEMBER (gts1_io_r);
95    DECLARE_WRITE8_MEMBER(gts1_io_w);
9699    DECLARE_READ8_MEMBER (gts1_lamp_apm_r);
97100    DECLARE_WRITE8_MEMBER(gts1_lamp_apm_w);
98101    DECLARE_READ8_MEMBER (gts1_nvram_r);
99102    DECLARE_WRITE8_MEMBER(gts1_nvram_w);
103    DECLARE_READ8_MEMBER (gts1_io_r);
104    DECLARE_WRITE8_MEMBER(gts1_io_w);
100105    DECLARE_READ8_MEMBER (gts1_pa_r);
101106    DECLARE_WRITE8_MEMBER(gts1_pa_w);
102107    DECLARE_WRITE8_MEMBER(gts1_pb_w);
r242382r242383
118123ADDRESS_MAP_END
119124
120125static ADDRESS_MAP_START( gts1_io, AS_IO, 8, gts1_state )
121    AM_RANGE(0x0030, 0x003f) AM_DEVREADWRITE ( "r10696", r10696_device, io_r, io_w ) // (U3) solenoid + dips
122    AM_RANGE(0x0060, 0x006f) AM_DEVREADWRITE ( "r10696", r10696_device, io_r, io_w ) // (U2) NVRAM io chip
123    AM_RANGE(0x00d0, 0x00df) AM_DEVREADWRITE ( "r10788", r10788_device, io_r, io_w ) // (U6) display chip
124    AM_RANGE(0x0000, 0x00ff) AM_READ ( gts1_io_r )   AM_WRITE( gts1_io_w ) // connects to all the other chips
125    AM_RANGE(0x0100, 0x0100) AM_READ ( gts1_pa_r ) AM_WRITE( gts1_pa_w )
126    AM_RANGE(0x0101, 0x0101) AM_WRITE(gts1_pb_w)
126    AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE ( "ra17xx_u4", ra17xx_device, io_r, io_w ) // (U4) solenoid
127    AM_RANGE(0x0030, 0x003f) AM_DEVREADWRITE ( "r10696_u3", r10696_device, io_r, io_w ) // (U3) solenoid + dips
128    AM_RANGE(0x0040, 0x004f) AM_DEVREADWRITE ( "ra17xx_u5", ra17xx_device, io_r, io_w ) // (U5) switch matrix
129    AM_RANGE(0x0060, 0x006f) AM_DEVREADWRITE ( "r10696_u2", r10696_device, io_r, io_w ) // (U2) NVRAM io chip
130    AM_RANGE(0x00d0, 0x00df) AM_DEVREADWRITE ( "r10788_u6", r10788_device, io_r, io_w ) // (U6) display chip
131    AM_RANGE(0x0000, 0x00ff) AM_READ ( gts1_io_r ) AM_WRITE( gts1_io_w )             // catch undecoded I/O accesss
132    AM_RANGE(0x0100, 0x0100) AM_READ ( gts1_pa_r ) AM_WRITE( gts1_pa_w )             // CPU I/O port A (input/output)
133    AM_RANGE(0x0101, 0x0101) AM_WRITE( gts1_pb_w )                                   // CPU I/O port B (output only)
127134ADDRESS_MAP_END
128135
129136static INPUT_PORTS_START( gts1 )
r242382r242383
217224{
218225}
219226
227READ8_MEMBER (gts1_state::gts1_solenoid_r)
228{
229    UINT8 data = 0;
230    LOG(("%s: solenoid[%02x] -> %x\n", __FUNCTION__, offset, data));
231    return data;
232}
233
234WRITE8_MEMBER(gts1_state::gts1_solenoid_w)
235{
236    LOG(("%s: solenoid[%02x] <- %x\n", __FUNCTION__, offset, data));
237}
238
239READ8_MEMBER (gts1_state::gts1_switches_r)
240{
241    UINT8 data = 0;
242    LOG(("%s: switches[%02x] -> %x\n", __FUNCTION__, offset, data));
243    return data;
244}
245
246WRITE8_MEMBER(gts1_state::gts1_switches_w)
247{
248    LOG(("%s: switches[%02x] <- %x\n", __FUNCTION__, offset, data));
249}
250
220251/**
221252 * @brief write a 8seg display value
222253 * @param offset digit number 0 .. 19
r242382r242383
482513
483514    //MCFG_NVRAM_ADD_0FILL("nvram")
484515
485    /* General Purpose Input/Output */
486    MCFG_DEVICE_ADD( "r10696", R10696, 0 )
516    /* A1753CE 2048 x 8 ROM (000-7ff), 128 x 4 RAM (00-7f) and 16 I/O lines (20 ... 2f) */
517    MCFG_DEVICE_ADD( "ra17xx_u5", RA17XX, 0 )
518    MCFG_RA17XX_READ ( READ8 (gts1_state,gts1_solenoid_r) )
519    MCFG_RA17XX_WRITE( WRITE8(gts1_state,gts1_solenoid_w) )
520
521    /* A1752CF 2048 x 8 ROM (800-fff), 128 x 4 RAM (80-ff) and 16 I/O lines (40 ... 4f) */
522    MCFG_DEVICE_ADD( "ra17xx_u4", RA17XX, 0 )
523    MCFG_RA17XX_READ ( READ8 (gts1_state,gts1_switches_r) )
524    MCFG_RA17XX_WRITE( WRITE8(gts1_state,gts1_switches_w) )
525
526    /* 10696 General Purpose Input/Output */
527    MCFG_DEVICE_ADD( "r10696_u2", R10696, 0 )
487528    MCFG_R10696_IO( READ8 (gts1_state,gts1_nvram_r),
488529                    WRITE8(gts1_state,gts1_nvram_w) )
489530
490    /* General Purpose Display and Keyboard */
491    MCFG_DEVICE_ADD( "r10788", R10788, XTAL_3_579545MHz / 18 )  // divided in the circuit
531    /* 10696 General Purpose Input/Output */
532    MCFG_DEVICE_ADD( "r10696_u3", R10696, 0 )
533    MCFG_R10696_IO( READ8 (gts1_state,gts1_lamp_apm_r),
534                    WRITE8(gts1_state,gts1_lamp_apm_w) )
535
536    /* 10788 General Purpose Display and Keyboard */
537    MCFG_DEVICE_ADD( "r10788_u6", R10788, XTAL_3_579545MHz / 18 )  // divided in the circuit
492538    MCFG_R10788_UPDATE( WRITE8(gts1_state,gts1_display_w) )
493539
494540    /* Video */
trunk/src/mame/mame.mak
r242382r242383
499499MACHINES += PIC8259
500500MACHINES += PIT8253
501501MACHINES += PLA
502#MACHINES += PROFILE
502503MACHINES += R10696
503504MACHINES += R10788
504#MACHINES += PROFILE
505MACHINES += RA17XX
505506#MACHINES += R64H156
506507MACHINES += RF5C296
507508#MACHINES += RIOT6532


Previous 199869 Revisions Next


© 1997-2024 The MAME Team