Previous 199869 Revisions Next

r19105 Thursday 22nd November, 2012 at 11:14:43 UTC by Miodrag Milanović
Added some more findings of TIM 011 (no whatsnew)
[src/mess/drivers]tim011.c

trunk/src/mess/drivers/tim011.c
r19104r19105
88
99#include "emu.h"
1010#include "cpu/z180/z180.h"
11#include "formats/hxcmfm_dsk.h"
12#include "formats/imd_dsk.h"
13#include "formats/mfi_dsk.h"
14#include "machine/upd765.h"
1115
16#define FDC9266_TAG "u43"
1217
1318class tim011_state : public driver_device
1419{
1520public:
1621   tim011_state(const machine_config &mconfig, device_type type, const char *tag)
17      : driver_device(mconfig, type, tag) { }
22      : driver_device(mconfig, type, tag),
23        m_maincpu(*this, "maincpu"),
24        m_fdc(*this, FDC9266_TAG),
25        m_floppy0(*this, FDC9266_TAG ":0:35dd"),
26        m_floppy1(*this, FDC9266_TAG ":1:35dd"),
27        m_floppy2(*this, FDC9266_TAG ":2:35dd"),
28        m_floppy3(*this, FDC9266_TAG ":3:35dd") { }
29       
1830   virtual void machine_reset();
1931   virtual void video_start();
2032   UINT32 screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
33   DECLARE_WRITE8_MEMBER(print_w);
34   DECLARE_WRITE8_MEMBER(scroll_w);
35   DECLARE_WRITE8_MEMBER(fdc_dma_w);
36   DECLARE_READ8_MEMBER(print_r);
37   DECLARE_READ8_MEMBER(scroll_r);   
38   void irq_w(bool state);
39   void drq_w(bool state);
40   UINT8 m_scroll;
41   
42   required_device<cpu_device> m_maincpu;
43   required_device<upd765a_device> m_fdc;
44   required_device<floppy_image_device> m_floppy0;
45   required_device<floppy_image_device> m_floppy1;
46   required_device<floppy_image_device> m_floppy2;
47   required_device<floppy_image_device> m_floppy3;   
2148};
2249
2350
2451static ADDRESS_MAP_START(tim011_mem, AS_PROGRAM, 8, tim011_state)
2552   ADDRESS_MAP_UNMAP_HIGH
26   AM_RANGE(0x00000, 0x01fff) AM_ROM
27   AM_RANGE(0x40000, 0x7ffff) AM_RAM
53   AM_RANGE(0x00000, 0x01fff) AM_ROM AM_MIRROR(0x3e000)   
54   AM_RANGE(0x40000, 0x7ffff) AM_RAM // 256KB RAM  8 * 41256 DRAM
2855ADDRESS_MAP_END
2956
3057static ADDRESS_MAP_START(tim011_io, AS_IO, 8, tim011_state)
3158   ADDRESS_MAP_UNMAP_HIGH
3259   AM_RANGE(0x0000, 0x007f) AM_RAM   /* Z180 internal registers */
33   AM_RANGE(0x8000, 0xffff) AM_RAM
60   AM_RANGE(0x0080, 0x009f) AM_DEVICE(FDC9266_TAG, upd765a_device, map)
61   //AM_RANGE(0x00a0, 0x00a0) AM_MIRROR(0x001f)  AM_WRITE(fdc_dma_w)
62   //AM_RANGE(0x00c0, 0x00c1) AM_MIRROR(0x000e)  AM_READWRITE(print_r,print_w)
63   //AM_RANGE(0x00d0, 0x00d0) AM_MIRROR(0x000f)  AM_READWRITE(scroll_r,scroll_w)   
64   AM_RANGE(0x8000, 0xffff) AM_RAM // Video RAM 43256 SRAM  (32KB)
3465ADDRESS_MAP_END
3566
3667/* Input ports */
3768static INPUT_PORTS_START( tim011 )
3869INPUT_PORTS_END
3970
71void tim011_state::irq_w(bool state)
72{
73   m_maincpu->set_input_line(2, state);
74}
4075
76void tim011_state::drq_w(bool state)
77{
78   printf("drq_w\n");
79}
80
4181void tim011_state::machine_reset()
4282{
83   // motor is actually connected on TXS pin of CPU
84   m_floppy0->mon_w(0);
85   m_floppy1->mon_w(0);
86   m_floppy2->mon_w(0);
87   m_floppy3->mon_w(0);
88   
89   m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(tim011_state::irq_w), this));
90   m_fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(tim011_state::drq_w), this));   
4391}
4492
4593void tim011_state::video_start()
r19104r19105
5199   return 0;
52100}
53101
102WRITE8_MEMBER(tim011_state::fdc_dma_w)
103{
104   printf("fdc_dma_w :%02x\n",data);
105}
106
107WRITE8_MEMBER(tim011_state::print_w)
108{
109   //printf("print_w :%02x\n",data);
110}
111
112READ8_MEMBER(tim011_state::print_r)
113{
114   //printf("print_r\n");
115   return 0;
116}
117
118WRITE8_MEMBER(tim011_state::scroll_w)
119{
120   m_scroll = data;
121}
122
123READ8_MEMBER(tim011_state::scroll_r)
124{
125   return m_scroll;
126}
127
128static SLOT_INTERFACE_START( tim011_floppies )
129   SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
130SLOT_INTERFACE_END
131
132static const floppy_format_type tim011_floppy_formats[] = {
133   FLOPPY_IMD_FORMAT,
134   FLOPPY_MFI_FORMAT,
135   FLOPPY_MFM_FORMAT,
136   NULL
137};
138
54139static MACHINE_CONFIG_START( tim011,tim011_state )
55140   /* basic machine hardware */
56   MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2)
141   MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2) // location U17 HD64180
57142   MCFG_CPU_PROGRAM_MAP(tim011_mem)
58143   MCFG_CPU_IO_MAP(tim011_io)
59144   MCFG_CPU_VBLANK_INT_DRIVER("screen", tim011_state, irq0_line_hold)
60145
146//   MCFG_CPU_ADD("keyboard",COSMAC, XTAL_1_75MHz) // CDP1802, uknown clock
61147
148   // FDC9266 location U43 XTAL_8MHz
149   MCFG_UPD765A_ADD(FDC9266_TAG, true, true)
150   /* floppy drives */
151   MCFG_FLOPPY_DRIVE_ADD(FDC9266_TAG ":0", tim011_floppies, "35dd", 0, tim011_floppy_formats)
152   MCFG_FLOPPY_DRIVE_ADD(FDC9266_TAG ":1", tim011_floppies, "35dd", 0, tim011_floppy_formats)
153   MCFG_FLOPPY_DRIVE_ADD(FDC9266_TAG ":2", tim011_floppies, "35dd", 0, tim011_floppy_formats)
154   MCFG_FLOPPY_DRIVE_ADD(FDC9266_TAG ":3", tim011_floppies, "35dd", 0, tim011_floppy_formats)
155   
62156   /* video hardware */
63157   MCFG_SCREEN_ADD("screen", RASTER)
64158   MCFG_SCREEN_REFRESH_RATE(50)
r19104r19105
73167/* ROM definition */
74168ROM_START( tim011 )
75169   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
76   ROM_LOAD( "sys_tim011.bin", 0x0000, 0x2000, CRC(5b4f1300) SHA1(d324991c4292d7dcde8b8d183a57458be8a2be7b))
170   ROM_LOAD( "sys_tim011.u16", 0x0000, 0x2000, CRC(5b4f1300) SHA1(d324991c4292d7dcde8b8d183a57458be8a2be7b))
77171   ROM_REGION( 0x10000, "keyboard", ROMREGION_ERASEFF )
78172   ROM_LOAD( "keyb_tim011.bin", 0x0000, 0x1000, CRC(a99c40a6) SHA1(d6d505271d91df4e079ec3c0a4abbe75ae9d649b))
79173ROM_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team