Previous 15994 Revisions Next

r11751 Tuesday 31st May, 2011 at 19:29:40 UTC by Angelo Salese
Basic fdc and gdc hooks, shows no system disk msg
[src/mess/drivers]a5105.c mz6500.c

src/mess/drivers/a5105.c
r11750r11751
366366}
367367
368368
369static const gfx_layout x1_chars_8x8 =
369static const gfx_layout a5105_chars_8x8 =
370370{
371371   8,8,
372372   RGN_FRAC(1,1),
r11750r11751
378378};
379379
380380static GFXDECODE_START( a5105 )
381   GFXDECODE_ENTRY( "pcg", 0x0000, x1_chars_8x8, 0, 8 )
381   GFXDECODE_ENTRY( "pcg", 0x0000, a5105_chars_8x8, 0, 8 )
382382GFXDECODE_END
383383
384384static INTERRUPT_GEN( a5105_vblank_irq )
src/mess/drivers/mz6500.c
r11750r11751
11/***************************************************************************
22
3    Robotron mz6500
3   Sharp MZ-6500
44
5    04/10/2009 Skeleton driver.
65
7    http://www.robotrontechnik.de/index.htm?/html/computer/mz6500.htm
86
97****************************************************************************/
108
119#include "emu.h"
1210#include "cpu/i86/i86.h"
11#include "machine/upd765.h"
12#include "video/upd7220.h"
1313
1414
1515class mz6500_state : public driver_device
1616{
1717public:
1818   mz6500_state(const machine_config &mconfig, device_type type, const char *tag)
19      : driver_device(mconfig, type, tag) { }
19      : driver_device(mconfig, type, tag),
20        m_hgdc(*this, "upd7220")
21   { }
2022
23   required_device<upd7220_device> m_hgdc;
24
25   virtual bool screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
2126};
2227
28bool mz6500_state::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
29{
30   bitmap_fill(&bitmap, &cliprect, 0);
31
32   /* graphics */
33   m_hgdc->update_screen(&bitmap, &cliprect);
34
35   return 0;
36}
37
38static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels )
39{
40   //mz6500_state *state = device->machine().driver_data<mz6500_state>();
41   int xi,gfx[3];
42   UINT8 pen;
43
44   gfx[0] = vram[address + 0x00000];
45   gfx[1] = vram[address + 0x10000];
46   gfx[2] = vram[address + 0x20000];
47
48   for(xi=0;xi<8;xi++)
49   {
50      pen = ((gfx[0] >> (xi)) & 1) ? 1 : 0;
51      pen|= ((gfx[1] >> (xi)) & 1) ? 2 : 0;
52      pen|= ((gfx[2] >> (xi)) & 1) ? 4 : 0;
53
54      *BITMAP_ADDR16(bitmap, y, x + xi) = pen;
55   }
56}
57
58
2359static VIDEO_START( mz6500 )
2460{
2561}
2662
27static SCREEN_UPDATE( mz6500 )
63
64static READ8_HANDLER( fdc_r )
2865{
29   return 0;
66   return (offset == 0) ? upd765_status_r(space->machine().device("upd765"),0) : upd765_data_r(space->machine().device("upd765"),0);
3067}
3168
69static WRITE8_HANDLER( fdc_w )
70{
71   if(offset)
72      upd765_data_w(space->machine().device("upd765"),0,data);
73}
74
75static READ8_HANDLER( mz6500_vram_r )
76{
77   mz6500_state *state = space->machine().driver_data<mz6500_state>();
78
79   return state->m_hgdc->vram_r(*space, offset);
80}
81
82static WRITE8_HANDLER( mz6500_vram_w )
83{
84   mz6500_state *state = space->machine().driver_data<mz6500_state>();
85
86   state->m_hgdc->vram_w(*space, offset, data);
87}
88
3289static ADDRESS_MAP_START(mz6500_map, AS_PROGRAM, 16)
3390   ADDRESS_MAP_UNMAP_HIGH
3491   AM_RANGE(0x00000,0x9ffff) AM_RAM
3592//   AM_RANGE(0xa0000,0xbffff) kanji/dictionary ROM
36//  AM_RANGE(0xc0000,0xeffff) vram
93   AM_RANGE(0xc0000,0xeffff) AM_READWRITE8(mz6500_vram_r,mz6500_vram_w,0xffff)
3794   AM_RANGE(0xfc000,0xfffff) AM_ROM AM_REGION("ipl", 0)
3895ADDRESS_MAP_END
3996
r11750r11751
4198   ADDRESS_MAP_UNMAP_HIGH
4299//  AM_RANGE(0x0000, 0x000f) i8237 dma
43100//  AM_RANGE(0x0010, 0x001f) i8255
44//  AM_RANGE(0x0020, 0x002f) upd765
101   AM_RANGE(0x0020, 0x0021) AM_MIRROR(0xe) AM_READWRITE8(fdc_r,fdc_w,0xffff)
45102//  AM_RANGE(0x0030, 0x003f) i8259 master
46103//  AM_RANGE(0x0040, 0x004f) i8259 slave
47104//   AM_RANGE(0x0050, 0x0050) segment byte for DMA
48105//   AM_RANGE(0x0060, 0x0060) system port A
49106//   AM_RANGE(0x0070, 0x0070) system port C
50107//  AM_RANGE(0x00cd, 0x00cd) MZ-1R32
51//  AM_RANGE(0x0100, 0x010f) upd7220
108   AM_RANGE(0x0100, 0x0103) AM_MIRROR(0xc) AM_DEVREADWRITE8_MODERN("upd7220", upd7220_device, read, write, 0x00ff)
52109//   AM_RANGE(0x0110, 0x011f) video address / data registers (priority)
53110//   AM_RANGE(0x0120, 0x012f) video registers
54111//   AM_RANGE(0x0130, 0x013f) video register
r11750r11751
71128{
72129}
73130
131static WRITE_LINE_DEVICE_HANDLER( fdc_irq )
132{
133   //printf("%02x IRQ\n",state);
134}
135
136static WRITE_LINE_DEVICE_HANDLER( fdc_drq )
137{
138   //printf("%02x DRQ\n",state);
139}
140
141static const struct upd765_interface upd765_intf =
142{
143   DEVCB_LINE(fdc_irq),
144   DEVCB_LINE(fdc_drq),
145   NULL,
146   UPD765_RDY_PIN_CONNECTED,
147   {FLOPPY_0, FLOPPY_1, NULL, NULL}
148};
149
150static const floppy_config mz6500_floppy_config =
151{
152   DEVCB_NULL,
153   DEVCB_NULL,
154   DEVCB_NULL,
155   DEVCB_NULL,
156   DEVCB_NULL,
157   FLOPPY_STANDARD_5_25_DSHD,
158   FLOPPY_OPTIONS_NAME(default),
159   NULL
160};
161
162
163static UPD7220_INTERFACE( hgdc_intf )
164{
165   "screen",
166   hgdc_display_pixels,
167   NULL,
168   DEVCB_NULL,
169   DEVCB_NULL,
170   DEVCB_NULL
171};
172
173static ADDRESS_MAP_START( upd7220_map, AS_0, 8 )
174   AM_RANGE(0x00000, 0x3ffff) AM_DEVREADWRITE_MODERN("upd7220", upd7220_device, vram_r, vram_w)
175ADDRESS_MAP_END
176
177
74178static MACHINE_CONFIG_START( mz6500, mz6500_state )
75179   /* basic machine hardware */
76180   MCFG_CPU_ADD("maincpu", I8086, 4000000) //unk clock
r11750r11751
79183
80184   MCFG_MACHINE_RESET(mz6500)
81185
186   MCFG_UPD765A_ADD("upd765", upd765_intf)
187   MCFG_FLOPPY_2_DRIVES_ADD(mz6500_floppy_config)
188
82189   /* video hardware */
83190   MCFG_SCREEN_ADD("screen", RASTER)
84191   MCFG_SCREEN_REFRESH_RATE(50)
r11750r11751
86193   MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
87194   MCFG_SCREEN_SIZE(640, 480)
88195   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
89   MCFG_SCREEN_UPDATE(mz6500)
90196
91   MCFG_PALETTE_LENGTH(2)
92   MCFG_PALETTE_INIT(black_and_white)
197   MCFG_UPD7220_ADD("upd7220", 4000000, hgdc_intf, upd7220_map)
93198
199   MCFG_PALETTE_LENGTH(8)
200//   MCFG_PALETTE_INIT(black_and_white)
201
94202   MCFG_VIDEO_START(mz6500)
95203MACHINE_CONFIG_END
96204
r11750r11751
104212
105213   ROM_REGION( 0x40000, "kanji", ROMREGION_ERASEFF )
106214   ROM_LOAD( "kanji.rom", 0x0000, 0x40000, CRC(b618e25d) SHA1(1da93337fecde6c0f8a5bd68f3f0b3222a38d63e))
107
108215ROM_END
109216
110217/* Driver */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team