Previous 199869 Revisions Next

r30903 Monday 9th June, 2014 at 01:38:34 UTC by David Haywood
make MB89363B a trampoline device for 2x i8255 chips (nw)
[src/emu/machine]machine.mak mb89363b.c* mb89363b.h*
[src/mame/drivers]kenseim.c

trunk/src/emu/machine/machine.mak
r30902r30903
17491749
17501750ifneq ($(filter I8255,$(MACHINES)),)
17511751MACHINEOBJS += $(MACHINEOBJ)/i8255.o
1752MACHINEOBJS += $(MACHINEOBJ)/mb89363b.o
17521753endif
17531754
17541755$(MACHINEOBJ)/s3c2400.o:    $(MACHINESRC)/s3c24xx.inc
trunk/src/emu/machine/mb89363b.c
r0r30903
1/*
2  (this acts as a trampoline to 2x i8255 chips)
3
4
5    Manufacturer: Fujitsu
6    Part Number: MB89363 / MB89363B / MB89363R
7    Package: Surface Mount QFP80 / QFP64P (MB89363R)
8    Description: 8-bit x 3 x 2 (6 x 8-bit) parallel data I/O port VLSI chip
9                 Parallel Communication Interface
10                 Extended I/O
11
12    Note: MB89363B is compatible with 8255
13
14    Pin Assignment:
15                                          +5v                                         
16                         P P P P P P P P P V   P P P P P P P P P                       
17                     N N 5 4 4 4 4 4 4 4 4 C N 1 1 1 1 1 1 1 1 2 N N                   
18                     C C 3 0 1 2 3 4 5 6 7 C C 7 6 5 4 3 2 1 0 3 C C                   
19                                                                                       
20                     | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | |                   
21                     | | | | | | | | | | | | | | | | | | | | | | | |                   
22                     | | v v v v v v v v v | | v v v v v v v v v | |                   
23                .-------------------------------------------------------.             
24                |    6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4    |             
25                |    4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1    |             
26      P52   <-> | 65                                                 40 | <->    P22   
27      P51   <-> | 66                                                 39 | <->    P21   
28      P50   <-> | 67                                                 38 | <->    P20   
29      P54   <-> | 68                                                 37 | <->    P24   
30      P55   <-> | 69                                                 36 | <->    P25   
31      P56   <-> | 70                                                 35 | <->    P26   
32      P57   <-> | 71                                                 34 | <->    P27   
33       NC   --- | 72                   MB89363B                      33 | ---    NC   
34       NC   --- | 73                                                 32 | <--    RSLCT1
35      GND   --> | 74                                                 31 | <--    RSLCT0
36      CS2   --> | 75                                                 30 | <--    GND   
37        R   --> | 76                                                 29 | <--    CS1   
38      P30   <-> | 77                                                 28 | <->    P00   
39      P31   <-> | 78                                                 27 | <->    P01   
40      P32   <-> | 79                                                 26 | <->    P02   
41      P33   <-> | 80                                                 25 | <->    P03   
42                 \                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2    |             
43                  \  1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4    |             
44                   -----------------------------------------------------'             
45                     ^ ^ ^ ^ ^ ^ | | ^ | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ |                   
46                     | | | | | | | | | | | | | | | | | | | | | | | |                   
47                     v v v v | | | | | | | v v v v v v v v v v v v |                   
48                                                                                       
49                     P P P P W R N N R N O D D D D D D D D P P P P N                   
50                     3 3 3 3   S C C H C U B B B B B B B B 0 0 0 0 C                   
51                     4 5 6 7   T     /   S 0 1 2 3 4 5 6 7 7 6 5 4                     
52                                     R   /                                             
53                                     L   I                                             
54                                         N                                             
55                                         S                                             
56
57    Block Diagram / Pin Descriptions:
58    http://www.mess.org/_media/datasheets/fujitsu/mb89363b_partial.pdf
59
60    D.C. Characteristics:
61    (Recommended operating conditions unless otherwise noted)
62    (VCC = +5V +- 10%, GND = 0V, TA = -40o C to 85o C)
63                                         Value
64    Parameter            Symbol      Min       Max            Unit      Test Condition
65    ----------------------------------------------------------------------------------
66    Input Low Voltage    ViL         -0.3      0.8            V
67    Input High Voltage   ViH         2.2       VCC +0.3       V
68    Output Low Voltage   VoL         -         0.4            V         IoL = 2.5mA
69    Output High Voltage  VoH         3.0       -              V         IoH =-2.5mA
70
71    Sources:
72    http://www.emb-tech.co.jp/pc104/96dio.pdf
73    http://www.pb5800.com/resources/2350ser01.pdf
74    http://www.diagramasde.com/diagramas/otros2/TS-850S%20Service%20Manual%20.pdf
75*/
76
77#include "emu.h"
78#include "machine/mb89363b.h"
79
80
81
82extern const device_type MB89363B = &device_creator<mb89363b_device>;
83
84
85mb89363b_device::mb89363b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
86   : device_t(mconfig, MB89363B, "MB89363B", tag, owner, clock, "mb89363b", __FILE__),
87      m_i8255_a(*this, "i8255_a"),
88      m_i8255_b(*this, "i8255_b"),
89      m_in_a_pa_cb(*this),
90      m_in_a_pb_cb(*this),
91      m_in_a_pc_cb(*this),
92      m_out_a_pa_cb(*this),
93      m_out_a_pb_cb(*this),
94      m_out_a_pc_cb(*this),
95      m_in_b_pa_cb(*this),
96      m_in_b_pb_cb(*this),
97      m_in_b_pc_cb(*this),
98      m_out_b_pa_cb(*this),
99      m_out_b_pb_cb(*this),
100      m_out_b_pc_cb(*this)
101{
102}
103
104
105READ8_MEMBER(mb89363b_device::i8255_a_port_a_r) { return m_in_a_pa_cb(space, offset); }
106READ8_MEMBER(mb89363b_device::i8255_a_port_b_r) { return m_in_a_pb_cb(space, offset); }
107READ8_MEMBER(mb89363b_device::i8255_a_port_c_r) { return m_in_a_pc_cb(space, offset); }
108WRITE8_MEMBER(mb89363b_device::i8255_a_port_a_w) { m_out_a_pa_cb(space, offset, data); }
109WRITE8_MEMBER(mb89363b_device::i8255_a_port_b_w) { m_out_a_pb_cb(space, offset, data); }
110WRITE8_MEMBER(mb89363b_device::i8255_a_port_c_w) { m_out_a_pc_cb(space, offset, data); }
111READ8_MEMBER(mb89363b_device::i8255_b_port_a_r) { return m_in_b_pa_cb(space, offset); }
112READ8_MEMBER(mb89363b_device::i8255_b_port_b_r) { return m_in_b_pb_cb(space, offset); }
113READ8_MEMBER(mb89363b_device::i8255_b_port_c_r) { return m_in_b_pc_cb(space, offset); }
114WRITE8_MEMBER(mb89363b_device::i8255_b_port_a_w) { m_out_b_pa_cb(space, offset, data); }
115WRITE8_MEMBER(mb89363b_device::i8255_b_port_b_w) { m_out_b_pb_cb(space, offset, data); }
116WRITE8_MEMBER(mb89363b_device::i8255_b_port_c_w) { m_out_b_pc_cb(space, offset, data); }
117
118
119READ8_MEMBER( mb89363b_device::read )
120{
121   if (offset & 4)
122      return m_i8255_b->read(space, offset & 3);
123   else
124      return m_i8255_a->read(space, offset & 3);
125}
126
127WRITE8_MEMBER( mb89363b_device::write )
128{
129   if (offset & 4)
130      m_i8255_b->write(space, offset & 3, data);
131   else
132      m_i8255_a->write(space, offset & 3, data);
133}
134
135
136static MACHINE_CONFIG_FRAGMENT( mb89363b )
137   MCFG_DEVICE_ADD("i8255_a", I8255, 0)
138   MCFG_I8255_IN_PORTA_CB(READ8(mb89363b_device, i8255_a_port_a_r))
139   MCFG_I8255_IN_PORTB_CB(READ8(mb89363b_device, i8255_a_port_b_r))
140   MCFG_I8255_IN_PORTC_CB(READ8(mb89363b_device, i8255_a_port_c_r))
141   MCFG_I8255_OUT_PORTA_CB(WRITE8(mb89363b_device, i8255_a_port_a_w))
142   MCFG_I8255_OUT_PORTB_CB(WRITE8(mb89363b_device, i8255_a_port_b_w))
143   MCFG_I8255_OUT_PORTC_CB(WRITE8(mb89363b_device, i8255_a_port_c_w))
144
145   MCFG_DEVICE_ADD("i8255_b", I8255, 0)
146   MCFG_I8255_IN_PORTA_CB(READ8(mb89363b_device, i8255_b_port_a_r))
147   MCFG_I8255_IN_PORTB_CB(READ8(mb89363b_device, i8255_b_port_b_r))
148   MCFG_I8255_IN_PORTC_CB(READ8(mb89363b_device, i8255_b_port_c_r))
149   MCFG_I8255_OUT_PORTA_CB(WRITE8(mb89363b_device, i8255_b_port_a_w))
150   MCFG_I8255_OUT_PORTB_CB(WRITE8(mb89363b_device, i8255_b_port_b_w))
151   MCFG_I8255_OUT_PORTC_CB(WRITE8(mb89363b_device, i8255_b_port_c_w))
152MACHINE_CONFIG_END
153
154machine_config_constructor mb89363b_device::device_mconfig_additions() const
155{
156   return MACHINE_CONFIG_NAME( mb89363b );
157}
158
159void mb89363b_device::device_start()
160{
161   m_in_a_pa_cb.resolve_safe(0);
162   m_in_a_pb_cb.resolve_safe(0);
163   m_in_a_pc_cb.resolve_safe(0);
164   m_out_a_pa_cb.resolve_safe();
165   m_out_a_pb_cb.resolve_safe();
166   m_out_a_pc_cb.resolve_safe();
167
168   m_in_b_pa_cb.resolve_safe(0);
169   m_in_b_pb_cb.resolve_safe(0);
170   m_in_b_pc_cb.resolve_safe(0);
171   m_out_b_pa_cb.resolve_safe();
172   m_out_b_pb_cb.resolve_safe();
173   m_out_b_pc_cb.resolve_safe();
174
175}
176
177void mb89363b_device::device_reset()
178{
179}
Property changes on: trunk/src/emu/machine/mb89363b.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/machine/mb89363b.h
r0r30903
1
2#pragma once
3
4#ifndef __MB89363B__
5#define __MB89363B__
6
7
8#include "machine/i8255.h"
9
10
11extern const device_type MB89363B;
12
13#define MCFG_MB89363B_ADD(_tag) \
14   MCFG_DEVICE_ADD(_tag, MB89363B, 0)
15
16
17
18#define MCFG_MB89363B_IN_PORTA_CB(_devcb) \
19   devcb = &mb89363b_device::set_in_a_pa_callback(*device, DEVCB_##_devcb);
20
21#define MCFG_MB89363B_IN_PORTB_CB(_devcb) \
22   devcb = &mb89363b_device::set_in_a_pb_callback(*device, DEVCB_##_devcb);
23
24#define MCFG_MB89363B_IN_PORTC_CB(_devcb) \
25   devcb = &mb89363b_device::set_in_a_pc_callback(*device, DEVCB_##_devcb);
26
27#define MCFG_MB89363B_OUT_PORTA_CB(_devcb) \
28   devcb = &mb89363b_device::set_out_a_pa_callback(*device, DEVCB_##_devcb);
29
30#define MCFG_MB89363B_OUT_PORTB_CB(_devcb) \
31   devcb = &mb89363b_device::set_out_a_pb_callback(*device, DEVCB_##_devcb);
32
33#define MCFG_MB89363B_OUT_PORTC_CB(_devcb) \
34   devcb = &mb89363b_device::set_out_a_pc_callback(*device, DEVCB_##_devcb);
35
36
37#define MCFG_MB89363B_IN_PORTD_CB(_devcb) \
38   devcb = &mb89363b_device::set_in_b_pa_callback(*device, DEVCB_##_devcb);
39
40#define MCFG_MB89363B_IN_PORTE_CB(_devcb) \
41   devcb = &mb89363b_device::set_in_b_pb_callback(*device, DEVCB_##_devcb);
42
43#define MCFG_MB89363B_IN_PORTF_CB(_devcb) \
44   devcb = &mb89363b_device::set_in_b_pc_callback(*device, DEVCB_##_devcb);
45
46#define MCFG_MB89363B_OUT_PORTD_CB(_devcb) \
47   devcb = &mb89363b_device::set_out_b_pa_callback(*device, DEVCB_##_devcb);
48
49#define MCFG_MB89363B_OUT_PORTE_CB(_devcb) \
50   devcb = &mb89363b_device::set_out_b_pb_callback(*device, DEVCB_##_devcb);
51
52#define MCFG_MB89363B_OUT_PORTF_CB(_devcb) \
53   devcb = &mb89363b_device::set_out_b_pc_callback(*device, DEVCB_##_devcb);
54
55
56
57class mb89363b_device :  public device_t
58{
59public:
60   // construction/destruction
61   mb89363b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
62
63   DECLARE_READ8_MEMBER(read);
64   DECLARE_WRITE8_MEMBER(write);
65
66   DECLARE_READ8_MEMBER(i8255_a_port_a_r);
67   DECLARE_READ8_MEMBER(i8255_a_port_b_r);
68   DECLARE_READ8_MEMBER(i8255_a_port_c_r);
69   DECLARE_WRITE8_MEMBER(i8255_a_port_a_w);
70   DECLARE_WRITE8_MEMBER(i8255_a_port_b_w);
71   DECLARE_WRITE8_MEMBER(i8255_a_port_c_w);
72   DECLARE_READ8_MEMBER(i8255_b_port_a_r);
73   DECLARE_READ8_MEMBER(i8255_b_port_b_r);
74   DECLARE_READ8_MEMBER(i8255_b_port_c_r);
75   DECLARE_WRITE8_MEMBER(i8255_b_port_a_w);
76   DECLARE_WRITE8_MEMBER(i8255_b_port_b_w);
77   DECLARE_WRITE8_MEMBER(i8255_b_port_c_w);
78
79
80   template<class _Object> static devcb_base &set_in_a_pa_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_a_pa_cb.set_callback(object); }
81   template<class _Object> static devcb_base &set_in_a_pb_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_a_pb_cb.set_callback(object); }
82   template<class _Object> static devcb_base &set_in_a_pc_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_a_pc_cb.set_callback(object); }
83   template<class _Object> static devcb_base &set_out_a_pa_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_a_pa_cb.set_callback(object); }
84   template<class _Object> static devcb_base &set_out_a_pb_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_a_pb_cb.set_callback(object); }
85   template<class _Object> static devcb_base &set_out_a_pc_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_a_pc_cb.set_callback(object); }
86
87   template<class _Object> static devcb_base &set_in_b_pa_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_b_pa_cb.set_callback(object); }
88   template<class _Object> static devcb_base &set_in_b_pb_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_b_pb_cb.set_callback(object); }
89   template<class _Object> static devcb_base &set_in_b_pc_callback(device_t &device, _Object object)  { return downcast<mb89363b_device &>(device).m_in_b_pc_cb.set_callback(object); }
90   template<class _Object> static devcb_base &set_out_b_pa_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_b_pa_cb.set_callback(object); }
91   template<class _Object> static devcb_base &set_out_b_pb_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_b_pb_cb.set_callback(object); }
92   template<class _Object> static devcb_base &set_out_b_pc_callback(device_t &device, _Object object) { return downcast<mb89363b_device &>(device).m_out_b_pc_cb.set_callback(object); }
93
94
95   required_device<i8255_device> m_i8255_a;
96   required_device<i8255_device> m_i8255_b;
97
98protected:
99   virtual machine_config_constructor device_mconfig_additions() const;
100   virtual void device_start();
101   virtual void device_reset();
102
103
104
105private:
106
107   devcb_read8        m_in_a_pa_cb;
108   devcb_read8        m_in_a_pb_cb;
109   devcb_read8        m_in_a_pc_cb;
110   
111   devcb_write8       m_out_a_pa_cb;
112   devcb_write8       m_out_a_pb_cb;
113   devcb_write8       m_out_a_pc_cb;
114
115   devcb_read8        m_in_b_pa_cb;
116   devcb_read8        m_in_b_pb_cb;
117   devcb_read8        m_in_b_pc_cb;
118   
119   devcb_write8       m_out_b_pa_cb;
120   devcb_write8       m_out_b_pb_cb;
121   devcb_write8       m_out_b_pc_cb;
122
123
124};
125
126#endif
Property changes on: trunk/src/emu/machine/mb89363b.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/drivers/kenseim.c
r30902r30903
142142#include "cpu/z80/z80.h"
143143#include "machine/z80ctc.h"
144144#include "includes/cps1.h"
145#include "machine/i8255.h"
146145#include "kenseim.lh"
146#include "machine/mb89363b.h"
147147
148148class kenseim_state : public cps_state
149149{
r30902r30903
515515
516516
517517/*
518    Manufacturer: Fujitsu
519    Part Number: MB89363 / MB89363B / MB89363R
520    Package: Surface Mount QFP80 / QFP64P (MB89363R)
521    Description: 8-bit x 3 x 2 (6 x 8-bit) parallel data I/O port VLSI chip
522                 Parallel Communication Interface
523                 Extended I/O
524
525    Note: MB89363B is compatible with 8255
526
527    Pin Assignment:
528                                          +5v                                         
529                         P P P P P P P P P V   P P P P P P P P P                       
530                     N N 5 4 4 4 4 4 4 4 4 C N 1 1 1 1 1 1 1 1 2 N N                   
531                     C C 3 0 1 2 3 4 5 6 7 C C 7 6 5 4 3 2 1 0 3 C C                   
532                                                                                       
533                     | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | | ^ ^ ^ ^ ^ ^ ^ ^ ^ | |                   
534                     | | | | | | | | | | | | | | | | | | | | | | | |                   
535                     | | v v v v v v v v v | | v v v v v v v v v | |                   
536                .-------------------------------------------------------.             
537                |    6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4    |             
538                |    4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1    |             
539      P52   <-> | 65                                                 40 | <->    P22   
540      P51   <-> | 66                                                 39 | <->    P21   
541      P50   <-> | 67                                                 38 | <->    P20   
542      P54   <-> | 68                                                 37 | <->    P24   
543      P55   <-> | 69                                                 36 | <->    P25   
544      P56   <-> | 70                                                 35 | <->    P26   
545      P57   <-> | 71                                                 34 | <->    P27   
546       NC   --- | 72                   MB89363B                      33 | ---    NC   
547       NC   --- | 73                                                 32 | <--    RSLCT1
548      GND   --> | 74                                                 31 | <--    RSLCT0
549      CS2   --> | 75                                                 30 | <--    GND   
550        R   --> | 76                                                 29 | <--    CS1   
551      P30   <-> | 77                                                 28 | <->    P00   
552      P31   <-> | 78                                                 27 | <->    P01   
553      P32   <-> | 79                                                 26 | <->    P02   
554      P33   <-> | 80                                                 25 | <->    P03   
555                 \                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2    |             
556                  \  1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4    |             
557                   -----------------------------------------------------'             
558                     ^ ^ ^ ^ ^ ^ | | ^ | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ |                   
559                     | | | | | | | | | | | | | | | | | | | | | | | |                   
560                     v v v v | | | | | | | v v v v v v v v v v v v |                   
561                                                                                       
562                     P P P P W R N N R N O D D D D D D D D P P P P N                   
563                     3 3 3 3   S C C H C U B B B B B B B B 0 0 0 0 C                   
564                     4 5 6 7   T     /   S 0 1 2 3 4 5 6 7 7 6 5 4                     
565                                     R   /                                             
566                                     L   I                                             
567                                         N                                             
568                                         S                                             
569
570    Block Diagram / Pin Descriptions:
571    http://www.mess.org/_media/datasheets/fujitsu/mb89363b_partial.pdf
572
573    D.C. Characteristics:
574    (Recommended operating conditions unless otherwise noted)
575    (VCC = +5V +- 10%, GND = 0V, TA = -40o C to 85o C)
576                                         Value
577    Parameter            Symbol      Min       Max            Unit      Test Condition
578    ----------------------------------------------------------------------------------
579    Input Low Voltage    ViL         -0.3      0.8            V
580    Input High Voltage   ViH         2.2       VCC +0.3       V
581    Output Low Voltage   VoL         -         0.4            V         IoL = 2.5mA
582    Output High Voltage  VoH         3.0       -              V         IoH =-2.5mA
583
584    Sources:
585    http://www.emb-tech.co.jp/pc104/96dio.pdf
586    http://www.pb5800.com/resources/2350ser01.pdf
587    http://www.diagramasde.com/diagramas/otros2/TS-850S%20Service%20Manual%20.pdf
518 
588519*/
589520
590521static ADDRESS_MAP_START( kenseim_map, AS_PROGRAM, 8, kenseim_state )
r30902r30903
596527   ADDRESS_MAP_GLOBAL_MASK(0xff)
597528   AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("gamecpu_ctc", z80ctc_device, read, write)
598529
599   AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("i8255",   i8255_device, read, write)
600   AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("i8255_2", i8255_device, read, write)
530   AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("mb89363b",   mb89363b_device, read, write)
601531
602532ADDRESS_MAP_END
603533
r30902r30903
628558
629559   MCFG_DEVICE_ADD("gamecpu_ctc", Z80CTC, XTAL_16MHz/2 ) // part of the tmpz84
630560   MCFG_Z80CTC_INTR_CB(INPUTLINE("gamecpu", INPUT_LINE_IRQ0))
561
562   // a,b,c always $80: all ports set as output
563   // d,e,f always $92: port D and E as input, port F as output
631564   
632   // the MB89363B seems to be 2 * i8255?
633   MCFG_DEVICE_ADD("i8255", I8255, 0) // MB89363B!
634   // always $80: all ports set as output
635   MCFG_I8255_OUT_PORTA_CB(WRITE8(kenseim_state, i8255_porta_w))
636   MCFG_I8255_OUT_PORTB_CB(WRITE8(kenseim_state, i8255_portb_w))
637   MCFG_I8255_OUT_PORTC_CB(WRITE8(kenseim_state, i8255_portc_w))
565   MCFG_MB89363B_ADD("mb89363b")
566   MCFG_MB89363B_OUT_PORTA_CB(WRITE8(kenseim_state, i8255_porta_w))
567   MCFG_MB89363B_OUT_PORTB_CB(WRITE8(kenseim_state, i8255_portb_w))
568   MCFG_MB89363B_OUT_PORTC_CB(WRITE8(kenseim_state, i8255_portc_w))
569   MCFG_MB89363B_IN_PORTD_CB(READ8(kenseim_state, i8255_portd_r))
570   MCFG_MB89363B_IN_PORTE_CB(READ8(kenseim_state, i8255_porte_r))
571   MCFG_MB89363B_OUT_PORTF_CB(WRITE8(kenseim_state, i8255_portf_w))
638572
639   MCFG_DEVICE_ADD("i8255_2", I8255, 0) // MB89363B!
640   // always $92: port A and B as input, port C as output
641   MCFG_I8255_IN_PORTA_CB(READ8(kenseim_state, i8255_portd_r))
642   MCFG_I8255_IN_PORTB_CB(READ8(kenseim_state, i8255_porte_r))
643   MCFG_I8255_OUT_PORTC_CB(WRITE8(kenseim_state, i8255_portf_w))
644573
645
646574   MCFG_QUANTUM_PERFECT_CPU("maincpu")
647575MACHINE_CONFIG_END
648576

Previous 199869 Revisions Next


© 1997-2024 The MAME Team