Previous 15994 Revisions Next

r6403 Monday 16th November, 2009 at 09:36:19 UTC by Miodrag Milanović
Skeleton for Sharp PC-E220, some basic memory mapping
[docs]messnew.txt
[src/mess]mess.mak messdriv.c
[src/mess/drivers]pce220.c*

src/mess/messdriv.c
r6402r6403
15131513   DRIVER( nextnt )
15141514   DRIVER( nexttrb )
15151515   DRIVER( pda600 )
1516   DRIVER( pce220 )
15161517
15171518#endif /* DRIVER_RECURSIVE */
src/mess/mess.mak
r6402r6403
15161516   $(MESS_DRIVERS)/cosmicos.o   \
15171517   $(MESS_DRIVERS)/next.o      \
15181518   $(MESS_DRIVERS)/pda600.o   \
1519   $(MESS_DRIVERS)/pce220.o   \
15191520
15201521
15211522
src/mess/drivers/pce220.c
r0r6403
1/***************************************************************************
2
3        Sharp PC-E220
4
5        16/11/2009 Skeleton driver.
6
7****************************************************************************/
8
9#include "driver.h"
10#include "cpu/z80/z80.h"
11#include "devices/messram.h"
12
13static WRITE8_HANDLER( rom_bank_w)
14{
15   UINT8 bank2 = data & 0x07; // bits 0,1,2
16   UINT8 bank1 = data & 0x70; // bits 4,5,6
17
18   memory_set_bankptr(space->machine, 3, memory_region(space->machine, "user1") + 0x4000 * bank1);
19   memory_set_bankptr(space->machine, 4, memory_region(space->machine, "user1") + 0x4000 * bank2);
20}
21
22static WRITE8_HANDLER( ram_bank_w)
23{
24   const address_space *space_prg = cputag_get_address_space(space->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
25   UINT8 bank = BIT(data,2);
26   memory_install_write8_handler(space_prg, 0x0000, 0x3fff, 0, 0, SMH_BANK(1));
27
28   memory_set_bankptr(space->machine, 1, messram_get_ptr(devtag_get_device(space->machine, "messram"))+0x0000+bank*0x8000);
29   memory_set_bankptr(space->machine, 2, messram_get_ptr(devtag_get_device(space->machine, "messram"))+0x4000+bank*0x8000);
30}
31
32static ADDRESS_MAP_START(pce220_mem, ADDRESS_SPACE_PROGRAM, 8)
33   AM_RANGE(0x0000, 0x3fff) AM_RAMBANK(1)
34   AM_RANGE(0x4000, 0x7fff) AM_RAMBANK(2)
35   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(3)
36   AM_RANGE(0xc000, 0xffff) AM_ROMBANK(4)
37ADDRESS_MAP_END
38
39static ADDRESS_MAP_START( pce220_io , ADDRESS_SPACE_IO, 8)
40   ADDRESS_MAP_UNMAP_HIGH
41   ADDRESS_MAP_GLOBAL_MASK(0xff)
42   AM_RANGE(0x19, 0x19) AM_WRITE(rom_bank_w)
43   AM_RANGE(0x1b, 0x1b) AM_WRITE(ram_bank_w)
44ADDRESS_MAP_END
45
46/* Input ports */
47INPUT_PORTS_START( pce220 )
48INPUT_PORTS_END
49
50
51static MACHINE_RESET(pce220)
52{
53   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
54   memory_install_write8_handler(space, 0x0000, 0x3fff, 0, 0, SMH_UNMAP);
55   memory_set_bankptr(machine, 1, memory_region(machine, "user1") + 0x0000);
56}
57
58static VIDEO_START( pce220 )
59{
60}
61
62static VIDEO_UPDATE( pce220 )
63{
64    return 0;
65}
66
67static MACHINE_DRIVER_START( pce220 )
68    /* basic machine hardware */
69    MDRV_CPU_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852
70    MDRV_CPU_PROGRAM_MAP(pce220_mem)
71    MDRV_CPU_IO_MAP(pce220_io)
72
73    MDRV_MACHINE_RESET(pce220)
74
75    /* video hardware */
76   // 4 lines x 24 characters, resp. 144 x 32 pixel
77    MDRV_SCREEN_ADD("screen", RASTER)
78    MDRV_SCREEN_REFRESH_RATE(50)
79    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
80    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
81    MDRV_SCREEN_SIZE(144, 32)
82    MDRV_SCREEN_VISIBLE_AREA(0, 144-1, 0, 32-1)
83    MDRV_PALETTE_LENGTH(2)
84    MDRV_PALETTE_INIT(black_and_white)
85
86    MDRV_VIDEO_START(pce220)
87    MDRV_VIDEO_UPDATE(pce220)
88
89   /* internal ram */
90   MDRV_RAM_ADD("messram")
91   MDRV_RAM_DEFAULT_SIZE("64K") // 32K internal + 32K external card
92MACHINE_DRIVER_END
93
94/* ROM definition */
95ROM_START( pce220 )
96   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
97   ROM_REGION( 0x20000, "user1", ROMREGION_ERASEFF )
98   ROM_SYSTEM_BIOS( 0, "v1", "v 0.1")
99   ROM_SYSTEM_BIOS( 1, "v2", "v 0.2")
100   ROM_LOAD( "bank0.bin",      0x0000, 0x4000, CRC(1fa94d11) SHA1(24c54347dbb1423388360a359aa09db47d2057b7))
101   ROM_LOAD( "bank1.bin",      0x4000, 0x4000, CRC(0f9864b0) SHA1(6b7301c96f1a865e1931d82872a1ed5d1f80644e))
102   ROM_LOAD( "bank2.bin",      0x8000, 0x4000, CRC(1625e958) SHA1(090440600d461aa7efe4adbf6e975aa802aabeec))
103   ROM_LOAD( "bank3.bin",      0xc000, 0x4000, CRC(ed9a57f8) SHA1(58087dc64103786a40325c0a1e04bd88bfd6da57))
104   ROM_LOAD( "bank4.bin",     0x10000, 0x4000, CRC(e37665ae) SHA1(85f5c84f69f79e7ac83b30397b2a1d9629f9eafa))
105   ROMX_LOAD( "bank5.bin",     0x14000, 0x4000, CRC(6b116e7a) SHA1(b29f5a070e846541bddc88b5ee9862cc36b88eee),ROM_BIOS(2))
106   ROMX_LOAD( "bank5_0.1.bin", 0x14000, 0x4000, CRC(13c26eb4) SHA1(b9cd0efd6b195653b9610e20ad8aab541824a689),ROM_BIOS(1))
107   ROMX_LOAD( "bank6.bin",     0x18000, 0x4000, CRC(4fbfbd18) SHA1(e5aab1df172dcb94aa90e7d898eacfc61157ff15),ROM_BIOS(2))
108   ROMX_LOAD( "bank6_0.1.bin", 0x18000, 0x4000, CRC(e2cda7a6) SHA1(01b1796d9485fde6994cb5afbe97514b54cfbb3a),ROM_BIOS(1))
109   ROMX_LOAD( "bank7.bin",     0x1c000, 0x4000, CRC(5e98b5b6) SHA1(f22d74d6a24f5929efaf2983caabd33859232a94),ROM_BIOS(2))
110   ROMX_LOAD( "bank7_0.1.bin", 0x1c000, 0x4000, CRC(d8e821b2) SHA1(18245a75529d2f496cdbdc28cdf40def157b20c0),ROM_BIOS(1))
111ROM_END
112
113/* Driver */
114
115/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT CONFIG COMPANY   FULLNAME       FLAGS */
116COMP( 1991, pce220,  0,       0,    pce220,    pce220,  0,   0,      "Sharp",   "PC-E220",      GAME_NOT_WORKING)
117
docs/messnew.txt
r6402r6403
1818
1919Skeleton drivers:
2020-----------------
21(none)
21- Sharp PC-E220
2222
2323
2424

Previous 15994 Revisions Next


© 1998-2018 The MESS Team