r8620 Sunday 25th July, 2010 at 14:19:21 UTC by Angelo Salese
[MULTI8]: documented memory map
[src/mess/drivers]multi8.c

src/mess/drivers/multi8.c
r8619r8620
11/***************************************************************************
2   
2
33        Mitsubishi Multi 8
44
55        13/07/2010 Skeleton driver.
r8619r8620
88
99#include "emu.h"
1010#include "cpu/z80/z80.h"
11#include "sound/2203intf.h"
12#include "video/mc6845.h"
1113
14static VIDEO_START( multi8 )
15{
16}
17
18static VIDEO_UPDATE( multi8 )
19{
20    return 0;
21}
22
23static WRITE8_HANDLER( multi8_6845_w )
24{
25   static int addr_latch;
26
27   if(offset == 0)
28   {
29      addr_latch = data;
30      mc6845_address_w(space->machine->device("crtc"), 0,data);
31   }
32   else
33   {
34      mc6845_register_w(space->machine->device("crtc"), 0,data);
35   }
36}
37
38
1239static ADDRESS_MAP_START(multi8_mem, ADDRESS_SPACE_PROGRAM, 8)
1340   ADDRESS_MAP_UNMAP_HIGH
1441   AM_RANGE(0x0000, 0x7FFF) AM_ROM
r8619r8620
1744
1845static ADDRESS_MAP_START( multi8_io , ADDRESS_SPACE_IO, 8)
1946   ADDRESS_MAP_UNMAP_HIGH
20   /* This is all a guess... ports used in the bootup process:
21   in 00 = ascii code from the keyboard
22   in 01 = is a key pressed? (bit 1) also bits 6 and 7 are used
23   out 10 = unknown
24   out 18, 19 = audio channel
25   in 1A = unknown
26   out 1C, 1D = possibly a mc6845
27   out 25, 26, 27, 2A, 2B, 2C, 2D, 30, 78 = unknown
28   in 28 = unknown (bit 5 is a status line) */
47   ADDRESS_MAP_GLOBAL_MASK(0xff)
48
49//   AM_RANGE(0x00, 0x01) //keyboard line
50   AM_RANGE(0x18, 0x19) AM_DEVWRITE("ymsnd", ym2203_w)
51//   AM_RANGE(0x18, 0x18) //opn read 0
52//   AM_RANGE(0x1a, 0x1a) //opn read 1
53   AM_RANGE(0x1c, 0x1d) AM_WRITE(multi8_6845_w)
54//   AM_RANGE(0x20, 0x21) //sio, cmt
55//   AM_RANGE(0x24, 0x27) //pit
56//   AM_RANGE(0x28, 0x2b) //i8255 0
57//   AM_RANGE(0x2c, 0x2d) //i8259
58//   AM_RANGE(0x30, 0x37) //vdp regs
59//   AM_RANGE(0x40, 0x41) //kanji regs
60//   AM_RANGE(0x70, 0x74) //upd765a fdc
2961ADDRESS_MAP_END
3062
3163/* Input ports */
r8619r8620
3365INPUT_PORTS_END
3466
3567
36static MACHINE_RESET(multi8)
37{   
38}
39
40static VIDEO_START( multi8 )
68static MACHINE_RESET(multi8)
4169{
4270}
4371
44static VIDEO_UPDATE( multi8 )
45{
46    return 0;
47}
48
4972/* F4 Character Displayer */
5073static const gfx_layout multi8_charlayout =
5174{
r8619r8620
6487   GFXDECODE_ENTRY( "chargen", 0x0000, multi8_charlayout, 0, 1 )
6588GFXDECODE_END
6689
90static const mc6845_interface mc6845_intf =
91{
92   "screen",   /* screen we are acting on */
93   8,         /* number of pixels per video memory address */
94   NULL,      /* before pixel update callback */
95   NULL,      /* row update callback */
96   NULL,      /* after pixel update callback */
97   DEVCB_NULL,   /* callback for display state changes */
98   DEVCB_NULL,   /* callback for cursor state changes */
99   DEVCB_NULL,   /* HSYNC callback */
100   DEVCB_NULL,   /* VSYNC callback */
101   NULL      /* update address callback */
102};
103
104
67105static MACHINE_DRIVER_START( multi8 )
68106    /* basic machine hardware */
69107    MDRV_CPU_ADD("maincpu",Z80, XTAL_4MHz)
70108    MDRV_CPU_PROGRAM_MAP(multi8_mem)
71    MDRV_CPU_IO_MAP(multi8_io)   
109    MDRV_CPU_IO_MAP(multi8_io)
72110
73111    MDRV_MACHINE_RESET(multi8)
74   
112
75113    /* video hardware */
76114    MDRV_SCREEN_ADD("screen", RASTER)
77115    MDRV_SCREEN_REFRESH_RATE(50)
78116    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
79117    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
80    MDRV_SCREEN_SIZE(640, 480)
81    MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
118    MDRV_SCREEN_SIZE(640, 200)
119    MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
82120    MDRV_PALETTE_LENGTH(2)
83121    MDRV_PALETTE_INIT(black_and_white)
84122   MDRV_GFXDECODE(multi8)
85123
124   MDRV_MC6845_ADD("crtc", H46505, XTAL_3_579545MHz/2, mc6845_intf)   /* unknown clock, hand tuned to get ~60 fps */
125
86126    MDRV_VIDEO_START(multi8)
87127    MDRV_VIDEO_UPDATE(multi8)
128
129   MDRV_SPEAKER_STANDARD_MONO("mono")
130
131   MDRV_SOUND_ADD("ymsnd", YM2203, 1500000) //unknown clock / divider
132//   MDRV_SOUND_CONFIG(ym2203_config)
133   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
88134MACHINE_DRIVER_END
89135
90136/* ROM definition */

Previous 509070 RevisionsNext 50


© 1998-2010 The MESS Team