Previous 199869 Revisions Next

r30804 Tuesday 3rd June, 2014 at 12:54:19 UTC by Curt Coder
(MESS) ql: Expansions WIP. (nw)
[src/emu/bus/ql]exp.c sandy_superdisk.c sandy_superqboard.c sandy_superqboard.h trumpcard.c
[src/mess/machine]qimi.c qimi.h

trunk/src/emu/bus/ql/sandy_superqboard.c
r30803r30804
99
1010**********************************************************************/
1111
12/*
13
14   TODO:
15
16   - mouse
17
18*/
19
1220#include "sandy_superqboard.h"
1321
1422
r30803r30804
2836//**************************************************************************
2937
3038const device_type SANDY_SUPERQBOARD = &device_creator<sandy_superqboard_t>;
39const device_type SANDY_SUPERQBOARD_512K = &device_creator<sandy_superqboard_512k_t>;
3140
3241
3342//-------------------------------------------------
r30803r30804
125134//-------------------------------------------------
126135
127136sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
128   device_t(mconfig, SANDY_SUPERQBOARD, "Sandy SuperQBoard", tag, owner, clock, "sandy_superqboard", __FILE__),
137   device_t(mconfig, SANDY_SUPERQBOARD, "Sandy SuperQBoard 256K", tag, owner, clock, "ql_sqboard", __FILE__),
129138   device_ql_expansion_card_interface(mconfig, *this),
130139   m_fdc(*this, WD1772_TAG),
131140   m_floppy0(*this, WD1772_TAG":0"),
r30803r30804
134143   m_latch(*this, TTL74273_TAG),
135144   m_rom(*this, "rom"),
136145   m_ram(*this, "ram"),
146   m_ram_size(256*1024),
137147   m_busy(1),
138148   m_int2(0),
139149   m_int3(0),
r30803r30804
142152{
143153}
144154
155sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source, int ram_size) :
156   device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
157   device_ql_expansion_card_interface(mconfig, *this),
158   m_fdc(*this, WD1772_TAG),
159   m_floppy0(*this, WD1772_TAG":0"),
160   m_floppy1(*this, WD1772_TAG":1"),
161   m_centronics(*this, CENTRONICS_TAG),
162   m_latch(*this, TTL74273_TAG),
163   m_rom(*this, "rom"),
164   m_ram(*this, "ram"),
165   m_ram_size(ram_size),
166   m_busy(1),
167   m_int2(0),
168   m_int3(0),
169   m_fd6(0),
170   m_fd7(0)
171{
172}
145173
174sandy_superqboard_512k_t::sandy_superqboard_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
175   : sandy_superqboard_t(mconfig, SANDY_SUPERQBOARD_512K, "Sandy SuperQBoard 512K", tag, owner, clock, "ql_sqboard", __FILE__, 512*1024) { }
176
177
146178//-------------------------------------------------
147179//  device_start - device-specific startup
148180//-------------------------------------------------
149181
150182void sandy_superqboard_t::device_start()
151183{
184   // allocate memory
185   m_ram.allocate(m_ram_size);
186
187   // state saving
188   save_item(NAME(m_busy));
189   save_item(NAME(m_int2));
190   save_item(NAME(m_int3));
191   save_item(NAME(m_fd6));
192   save_item(NAME(m_fd7));
152193}
153194
154195
r30803r30804
216257      }
217258   }
218259
260   if (offset >= 0x60000 && offset < 0xc0000)
261   {
262      if ((offset - 0x60000) < m_ram_size)
263      {
264         data = m_ram[offset - 0x60000];
265      }
266   }
267
219268   return data;
220269}
221270
r30803r30804
298347         }
299348      }
300349   }
350
351   if (offset >= 0x60000 && offset < 0xc0000)
352   {
353      if ((offset - 0x60000) < m_ram_size)
354      {
355         m_ram[offset - 0x60000] = data;
356      }
357   }
301358}
302359
303360void sandy_superqboard_t::check_interrupt()
trunk/src/emu/bus/ql/sandy_superdisk.c
r30803r30804
115115//-------------------------------------------------
116116
117117sandy_super_disk_t::sandy_super_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
118   device_t(mconfig, SANDY_SUPER_DISK, "Sandy Super Disk", tag, owner, clock, "sandy_super_disk", __FILE__),
118   device_t(mconfig, SANDY_SUPER_DISK, "Sandy Super Disk", tag, owner, clock, "ql_sdisk", __FILE__),
119119   device_ql_expansion_card_interface(mconfig, *this),
120120   m_fdc(*this, WD1772_TAG),
121121   m_floppy0(*this, WD1772_TAG":0"),
r30803r30804
134134
135135void sandy_super_disk_t::device_start()
136136{
137   // state saving
138   save_item(NAME(m_busy));
139   save_item(NAME(m_fd6));
137140}
138141
139142
trunk/src/emu/bus/ql/sandy_superqboard.h
r30803r30804
2525//  TYPE DEFINITIONS
2626//**************************************************************************
2727
28// ======================> sandy_superqboard_device
28// ======================> sandy_superqboard_t
2929
3030class sandy_superqboard_t : public device_t,
3131                        public device_ql_expansion_card_interface
r30803r30804
3333public:
3434   // construction/destruction
3535   sandy_superqboard_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
36   sandy_superqboard_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source, int ram_size);
3637
3738   // optional information overrides
3839   virtual const rom_entry *device_rom_region() const;
r30803r30804
6263   required_memory_region m_rom;
6364   optional_shared_ptr<UINT8> m_ram;
6465
66   int m_ram_size;
6567   int m_busy;
6668   int m_int2;
6769   int m_int3;
r30803r30804
7072};
7173
7274
75// ======================> sandy_superqboard_512k_t
76
77class sandy_superqboard_512k_t :  public sandy_superqboard_t
78{
79public:
80   // construction/destruction
81   sandy_superqboard_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
82};
83
84
7385// device type definition
7486extern const device_type SANDY_SUPERQBOARD;
87extern const device_type SANDY_SUPERQBOARD_512K;
7588
7689
7790#endif
trunk/src/emu/bus/ql/exp.c
r30803r30804
8585SLOT_INTERFACE_START( ql_expansion_cards )
8686   SLOT_INTERFACE("sdisk", SANDY_SUPER_DISK)
8787   SLOT_INTERFACE("sqboard", SANDY_SUPERQBOARD)
88   SLOT_INTERFACE("sqboard512k", SANDY_SUPERQBOARD_512K)
8889   SLOT_INTERFACE("trump", QL_TRUMP_CARD)
8990   SLOT_INTERFACE("trump256k", QL_TRUMP_CARD_256K)
9091   SLOT_INTERFACE("trump512k", QL_TRUMP_CARD_512K)
trunk/src/emu/bus/ql/trumpcard.c
r30803r30804
99
1010**********************************************************************/
1111
12/*
13
14   TODO:
15
16   - RAM always 128KB on boot screen
17
18*/
19
1220#include "trumpcard.h"
1321
1422
r30803r30804
115123//-------------------------------------------------
116124
117125ql_trump_card_t::ql_trump_card_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
118   device_t(mconfig, QL_TRUMP_CARD, "QL Trump Card", tag, owner, clock, "trump", __FILE__),
126   device_t(mconfig, QL_TRUMP_CARD, "QL Trump Card", tag, owner, clock, "ql_trump", __FILE__),
119127   device_ql_expansion_card_interface(mconfig, *this),
120128   m_fdc(*this, WD1772_TAG),
121129   m_floppy0(*this, WD1772_TAG":0"),
r30803r30804
127135}
128136
129137ql_trump_card_t::ql_trump_card_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source, int ram_size) :
130   device_t(mconfig, QL_TRUMP_CARD, "QL Trump Card", tag, owner, clock, "trump", __FILE__),
138   device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
131139   device_ql_expansion_card_interface(mconfig, *this),
132140   m_fdc(*this, WD1772_TAG),
133141   m_floppy0(*this, WD1772_TAG":0"),
r30803r30804
139147}
140148
141149ql_trump_card_256k_t::ql_trump_card_256k_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
142   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_256K, "QL Trump Card 256K", tag, owner, clock, "trump256k", __FILE__, 256*1024) { }
150   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_256K, "QL Trump Card 256K", tag, owner, clock, "ql_trump", __FILE__, 256*1024) { }
143151
144152ql_trump_card_512k_t::ql_trump_card_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
145   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_512K, "QL Trump Card 512K", tag, owner, clock, "trump512k", __FILE__, 512*1024) { }
153   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_512K, "QL Trump Card 512K", tag, owner, clock, "ql_trump", __FILE__, 512*1024) { }
146154
147155ql_trump_card_768k_t::ql_trump_card_768k_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
148   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_768K, "QL Trump Card 768K", tag, owner, clock, "trump768k", __FILE__, 768*1024) { }
156   : ql_trump_card_t(mconfig, QL_TRUMP_CARD_768K, "QL Trump Card 768K", tag, owner, clock, "ql_trump", __FILE__, 768*1024) { }
149157
150158
151159//-------------------------------------------------
r30803r30804
154162
155163void ql_trump_card_t::device_start()
156164{
165   // allocate memory
157166   m_ram.allocate(m_ram_size);
167
168   // state saving
169   save_item(NAME(m_rom_en));
170   save_item(NAME(m_ram_en));
158171}
159172
160173
trunk/src/mess/machine/qimi.c
r30803r30804
1717//  MACROS / CONSTANTS
1818//**************************************************************************
1919
20#define QL_CONFIG_PORT          "config"
21#define QIMI_PORT_MASK          0x01
22#define QIMI_NONE               0x00
23#define QIMI_MOUSE              0x01
24
2520#define MOUSEX_TAG              "MOUSEX"
2621#define MOUSEY_TAG              "MOUSEY"
2722#define MOUSEB_TAG              "MOUSEB"
r30803r30804
5853//-------------------------------------------------
5954
6055INPUT_PORTS_START( qimi )
61   PORT_START(QL_CONFIG_PORT)
62   PORT_CONFNAME( QIMI_PORT_MASK, QIMI_NONE, "QIMI enabled")
63   PORT_CONFSETTING( QIMI_NONE, "No" )
64   PORT_CONFSETTING( QIMI_MOUSE, "Yes" )
65
6656   PORT_START(MOUSEX_TAG)
6757   PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1)
6858
r30803r30804
10090   m_write_extint(*this),
10191   m_mousex(*this, MOUSEX_TAG),
10292   m_mousey(*this, MOUSEY_TAG),
103   m_mouseb(*this, MOUSEB_TAG),
104   m_config(*this, QL_CONFIG_PORT)
93   m_mouseb(*this, MOUSEB_TAG)
10594{
10695}
10796
trunk/src/mess/machine/qimi.h
r30803r30804
6868   required_ioport m_mousex;
6969   required_ioport m_mousey;
7070   required_ioport m_mouseb;
71   required_ioport m_config;
7271
7372   UINT8   m_mouse_int;
7473

Previous 199869 Revisions Next


© 1997-2024 The MAME Team