Previous 199869 Revisions Next

r26589 Wednesday 11th December, 2013 at 16:31:43 UTC by Robbbert
(MESS) ivg09 : added fdc and some extra unused roms
[src/mess/drivers]tavernie.c

trunk/src/mess/drivers/tavernie.c
r26588r26589
99    This system was described in a French computer magazine.
1010
1111    CPU09 includes 6809, 6821, 6840, 6850, cassette, rs232
12    IVG09 includes 6845, WD1795, another 6821, beeper
12    IVG09 includes 6845, another 6821, beeper
13    IFD09 includes WD1795
1314
1415ToDo:
15    - FDC
1616    - Attributes ram
1717    - Graphics
1818    - Character rom is not dumped
1919    - Graphics rom is not dumped
20    - 3x 7611 proms not dumped
2021    - Fix cassette
22    - Test FDC
2123    - Need software
2224
2325List of commands (must be in UPPERCASE):
r26588r26589
5557#include "machine/keyboard.h"
5658#include "machine/serial.h"
5759#include "imagedev/cassette.h"
60#include "machine/wd_fdc.h"
5861#include "sound/wave.h"
5962#include "sound/beep.h"
6063#include "tavernie.lh"
r26588r26589
6871      , m_p_videoram(*this, "videoram")
6972      , m_cass(*this, "cassette")
7073      , m_pia_ivg(*this, "pia_ivg")
74      , m_fdc(*this, "fdc")
75      , m_floppy0(*this, "fdc:0")
7176      , m_beep(*this, "beeper")
7277      , m_maincpu(*this, "maincpu")
7378   { }
r26588r26589
7984   DECLARE_WRITE8_MEMBER(pa_ivg_w);
8085   DECLARE_READ8_MEMBER(pb_ivg_r);
8186   DECLARE_WRITE8_MEMBER(kbd_put);
87   DECLARE_WRITE8_MEMBER(ds_w);
8288   DECLARE_MACHINE_RESET(cpu09);
8389   DECLARE_MACHINE_RESET(ivg09);
8490   const UINT8 *m_p_chargen;
r26588r26589
8894   UINT8 m_pa;
8995   required_device<cassette_image_device> m_cass;
9096   optional_device<pia6821_device> m_pia_ivg;
97   optional_device<fd1795_t> m_fdc;
98   optional_device<floppy_connector> m_floppy0;
9199   optional_device<beep_device> m_beep;
92100   required_device<cpu_device> m_maincpu;
93101};
r26588r26589
110118   AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pia_ivg", pia6821_device, read, write)
111119   AM_RANGE(0x2080, 0x2080) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
112120   AM_RANGE(0x2081, 0x2081) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
121   AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("fdc", fd1795_t, read, write)
122   AM_RANGE(0xe080, 0xe080) AM_WRITE(ds_w)
113123   AM_RANGE(0xeb00, 0xeb03) AM_DEVREADWRITE("pia", pia6821_device, read, write)
114124   AM_RANGE(0xeb04, 0xeb04) AM_DEVREADWRITE("acia", acia6850_device, status_read, control_write)
115125   AM_RANGE(0xeb05, 0xeb05) AM_DEVREADWRITE("acia", acia6850_device, data_read, data_write)
r26588r26589
164174   m_pia_ivg->cb1_w(1);
165175}
166176
177static SLOT_INTERFACE_START( ifd09_floppies )
178   SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
179SLOT_INTERFACE_END
167180
181// can support 3 drives
182WRITE8_MEMBER( tavernie_state::ds_w )
183{
184   floppy_image_device *floppy = NULL;
185   if ((data & 3) == 1) floppy = m_floppy0->get_device();
186   //if ((data & 3) == 2) floppy = m_floppy1->get_device();
187   //if ((data & 3) == 3) floppy = m_floppy2->get_device();
188
189   m_fdc->set_floppy(floppy);
190
191   if (floppy)
192   {
193      floppy->mon_w(0);
194      m_fdc->dden_w(!BIT(data, 2));
195   }
196}
197
198
168199static MC6845_UPDATE_ROW( update_row )
169200{
170201   tavernie_state *state = device->machine().driver_data<tavernie_state>();
r26588r26589
376407   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
377408   MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000, mc6845_intf) // unknown clock
378409   MCFG_PIA6821_ADD("pia_ivg", pia_ivg_intf)
410   MCFG_FD1795x_ADD("fdc", XTAL_8MHz / 8)
411   MCFG_FLOPPY_DRIVE_ADD("fdc:0", ifd09_floppies, "525dd", floppy_image_device::default_floppy_formats)
379412MACHINE_CONFIG_END
380413
381414/* ROM definition */
r26588r26589
385418ROM_END
386419
387420ROM_START( ivg09 )
388   ROM_REGION( 0x1000, "roms", 0 )
421   ROM_REGION( 0x19f0, "roms", 0 )
389422   ROM_LOAD( "tavbug.bin",   0x0000, 0x1000, CRC(77945cae) SHA1(d89b577bc0b4e15e9a49a849998681bdc6cf5fbe) )
423   // these 2 are not used. Boottav is copied to ram at c100
424   ROM_LOAD_OPTIONAL( "promon.bin",   0x1000, 0x0800, CRC(43256bf2) SHA1(e81acb5b659d50d7b019b97ad5d2a8f129da39f6) )
425   ROM_LOAD_OPTIONAL( "boottav.bin",  0x1800, 0x01f0, CRC(ae1a858d) SHA1(ab2144a00afd5b75c6dcb15c2c3f9d6910a159ae) )
390426
391427   // charrom is missing, using one from 'c10' for now
392428   ROM_REGION( 0x2000, "chargen", 0 )
393   ROM_LOAD( "c10_char.bin", 0x0000, 0x2000, CRC(cb530b6f) SHA1(95590bbb433db9c4317f535723b29516b9b9fcbf))
429   ROM_LOAD( "c10_char.bin", 0x0000, 0x2000, BAD_DUMP CRC(cb530b6f) SHA1(95590bbb433db9c4317f535723b29516b9b9fcbf))
394430ROM_END
395431
396432/* Driver */
397433
398434/*    YEAR  NAME    PARENT  COMPAT   MACHINE  INPUT    CLASS          INIT    COMPANY        FULLNAME   FLAGS */
399435COMP( 1982, cpu09,  0,      0,       cpu09,   cpu09,   driver_device,   0,   "C. Tavernier",  "CPU09", GAME_NOT_WORKING )
400COMP( 1983, ivg09,  cpu09,  0,       ivg09,   ivg09,   driver_device,   0,   "C. Tavernier",  "CPU09 with IVG09", GAME_NOT_WORKING )
436COMP( 1983, ivg09,  cpu09,  0,       ivg09,   ivg09,   driver_device,   0,   "C. Tavernier",  "CPU09 with IVG09 and IFD09", GAME_NOT_WORKING )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team