Previous 15994 Revisions Next

r9701 Wednesday 1st December, 2010 at 16:54:43 UTC by Curt Coder
[PROF180X] Added memory map and some devices.
[src/emu/drivers]xtal.h
[src/mess]messdriv.c
[src/mess/drivers]prof180x.c prof80.c

src/emu/drivers/xtal.h
r9700r9701
7878   XTAL_8_664MHz      = 8664000,      /* Touchmaster */
7979   XTAL_8_867236MHz   = 8867236,      /* RCA CDP1869 PAL color clock */
8080   XTAL_8_867238MHz   = 8867238,      /* ETI-660 */
81   XTAL_9_216MHz      = 9216000,      /* Conitec PROF-180X */
8182   XTAL_8_945MHz      = 8945000,      /* Hit Me */
8283   XTAL_9_828MHz      = 9828000,      /* Universal PCBs */
8384   XTAL_9_8304MHz      = 9830400,      /* Epson PX-8 */
src/mess/messdriv.c
r9700r9701
15491549   DRIVER( prof80g31 )
15501550   DRIVER( prof80g562 )
15511551   DRIVER( prof180x )
1552   DRIVER( prof181x )
15521553
15531554/****************Games*******************************************************/
15541555   /* Computer Electronic */
src/mess/drivers/prof80.c
r9700r9701
12781278   speaker_levels
12791279};
12801280
1281static VIDEO_START( prof80 )
1282{
1283}
1284
1285static VIDEO_UPDATE( prof80 )
1286{
1287   return 0;
1288}
1289
1290
12911281/* Machine Drivers */
12921282
12931283static MACHINE_CONFIG_START( prof80, prof80_state )
1294
12951284    /* basic machine hardware */
12961285    MDRV_CPU_ADD(Z80_TAG, Z80, XTAL_6MHz)
12971286    MDRV_CPU_PROGRAM_MAP(prof80_mem)
r9700r9701
13001289   MDRV_MACHINE_START(prof80)
13011290   MDRV_MACHINE_RESET(prof80)
13021291
1303   /* devices */
1304   MDRV_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, prof80_upd1990a_intf)
1305   MDRV_UPD765A_ADD(UPD765_TAG, prof80_upd765_interface)
1306   MDRV_FLOPPY_4_DRIVES_ADD(prof80_floppy_config)
1307
13081292    /* video hardware */
13091293    MDRV_SCREEN_ADD(SCREEN_TAG, RASTER)
1310    MDRV_SCREEN_REFRESH_RATE(60)
1311   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
1312   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
1294    MDRV_SCREEN_REFRESH_RATE(50)
1295    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
1296    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
13131297    MDRV_SCREEN_SIZE(640, 480)
1314    MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
1298    MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
13151299    MDRV_PALETTE_LENGTH(2)
13161300    MDRV_PALETTE_INIT(black_and_white)
13171301
1318    MDRV_VIDEO_START(prof80)
1319    MDRV_VIDEO_UPDATE(prof80)
1302   /* devices */
1303   MDRV_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, prof80_upd1990a_intf)
1304   MDRV_UPD765A_ADD(UPD765_TAG, prof80_upd765_interface)
1305   MDRV_FLOPPY_4_DRIVES_ADD(prof80_floppy_config)
13201306
13211307   /* internal ram */
13221308   MDRV_RAM_ADD("messram")
r9700r9701
13241310MACHINE_CONFIG_END
13251311
13261312static MACHINE_CONFIG_DERIVED( grip, prof80 )
1327
1313    /* basic machine hardware */
13281314    MDRV_CPU_MODIFY(Z80_TAG)
13291315    MDRV_CPU_IO_MAP(prof80_grip_io)
13301316
1331    /* basic machine hardware */
13321317   MDRV_CPU_ADD(GRIP_Z80_TAG, Z80, XTAL_16MHz/4)
13331318   MDRV_CPU_CONFIG(grip_daisy_chain)
13341319    MDRV_CPU_PROGRAM_MAP(grip_mem)
r9700r9701
13641349MACHINE_CONFIG_END
13651350
13661351static MACHINE_CONFIG_DERIVED( grip5, grip )
1367
13681352    /* basic machine hardware */
13691353   MDRV_CPU_MODIFY(GRIP_Z80_TAG)
13701354    MDRV_CPU_IO_MAP(grip5_io)
src/mess/drivers/prof180x.c
r9700r9701
66
77****************************************************************************/
88
9/*
10
11   TODO:
12
13   - HD64180 CPU (DMA, MMU, SIO, etc) (Z80180 like)
14   - memory banking
15   - keyboard
16   - floppy
17   - floppy motor off timer
18   - floppy index callback
19   - RTC
20
21*/
22
23#define ADDRESS_MAP_MODERN
24
925#include "emu.h"
1026#include "cpu/z80/z80.h"
27#include "devices/messram.h"
28#include "machine/ctronics.h"
29#include "machine/upd765.h"
30#include "includes/prof180.h"
1131
32void prof180x_state::bankswitch()
33{
34   switch ((m_mm1 << 1) | m_mm0)
35   {
36   case 0:
37      // bank0_r = EPROM, bank0_w = RAM, bank1 = RAM
38      break;
39   
40   case 1:
41      // bank0_r = RAM, bank0_w = RAM, bank1 = RAM
42      break;
43   
44   case 2:
45      // bank0_r = UNMAP, bank0_w = UNMAP, bank1 = RAM
46      break;
47   
48   case 3:
49      // bank0_r = RAM, bank0_w = RAM, bank1 = UNMAP
50      break;
51   }
52}
1253
13class prof180x_state : public driver_device
54void prof180x_state::ls259_w(int flag, int value)
1455{
15public:
16   prof180x_state(running_machine &machine, const driver_device_config_base &config)
17      : driver_device(machine, config) { }
56   switch (flag)
57   {
58   case 0: // C0
59      m_c0 = value;
60      break;
1861
19};
62   case 1: // C1
63      m_c1 = value;
64      break;
2065
66   case 2: // C2
67      m_c2 = value;
68      break;
2169
22static ADDRESS_MAP_START(prof180x_mem, ADDRESS_SPACE_PROGRAM, 8)
23   ADDRESS_MAP_UNMAP_HIGH
24   AM_RANGE( 0x0000, 0x1fff ) AM_ROM
25   AM_RANGE( 0x2000, 0xffff ) AM_RAM
70   case 3:   // MINI
71      break;
72
73   case 4: // MM0
74      m_mm0 = value;
75      bankswitch();
76      break;
77
78   case 5:   // RTC
79      break;
80
81   case 6:   // PEPS
82      break;
83
84   case 7:   // MM1
85      m_mm1 = value;
86      bankswitch();
87      break;
88   }
89}
90
91WRITE8_MEMBER( prof180x_state::flr_w )
92{
93   /*
94
95        bit     description
96
97        0      VAL
98        1       FLG0
99        2       FLG1
100        3       FLG2
101        4       
102        5       
103        6       
104        7       
105
106    */
107
108   int val = BIT(data, 0);
109   int flg = (data >> 1) & 0x07;
110
111   ls259_w(flg, val);
112}
113
114READ8_MEMBER( prof180x_state::status0_r )
115{
116   /*
117
118        bit     description
119
120        0      BUSY
121        1       
122        2       
123        3       
124        4       B-E
125        5       IDX
126        6       
127        7       MOT
128
129    */
130
131   return 0;
132}
133
134READ8_MEMBER( prof180x_state::status1_r )
135{
136   /*
137
138        bit     description
139
140        0      FREE
141        1       
142        2       
143        3       
144        4       J18
145        5       J19
146        6       
147        7       TDO
148
149    */
150
151   return 0;
152}
153
154READ8_MEMBER( prof180x_state::status_r )
155{
156   return BIT(offset, 8) ? status1_r(space, offset) : status0_r(space, offset);
157}
158
159/* Address Maps */
160
161static ADDRESS_MAP_START( prof180x_mem, ADDRESS_SPACE_PROGRAM, 8, prof180x_state )
162   AM_RANGE(0x00000, 0x3ffff) AM_READ_BANK("bank0_r") AM_WRITE_BANK("bank0_w")
163   AM_RANGE(0x40000, 0x7ffff) AM_RAMBANK("bank1")
26164ADDRESS_MAP_END
27165
28static ADDRESS_MAP_START( prof180x_io , ADDRESS_SPACE_IO, 8)
29   ADDRESS_MAP_UNMAP_HIGH
166static ADDRESS_MAP_START( prof180x_io , ADDRESS_SPACE_IO, 8, prof180x_state )
167   AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_WRITE(flr_w)
168   AM_RANGE(0x09, 0x09) AM_MASK(0xff00) AM_READ(status_r)
169   AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(FDC9268_TAG, upd765_dack_r, upd765_dack_w)
170   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_DEVWRITE_LEGACY(CENTRONICS_TAG, centronics_data_w)
171   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_DEVREAD_LEGACY(FDC9268_TAG, upd765_status_r)
172   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(FDC9268_TAG, upd765_data_r, upd765_data_w)
30173ADDRESS_MAP_END
31174
32175/* Input ports */
176
33177static INPUT_PORTS_START( prof180x )
34178INPUT_PORTS_END
35179
180/* Video */
36181
37static MACHINE_RESET(prof180x)
182static const struct upd765_interface fdc_intf =
38183{
39}
184   DEVCB_NULL,
185   DEVCB_NULL, // DEVCB_CPU_INPUT_LINE(HD64180_TAG, INPUT_LINE_DREQ1)
186   NULL,
187   UPD765_RDY_PIN_CONNECTED,
188   { FLOPPY_0, FLOPPY_1, NULL, NULL }
189};
40190
41static VIDEO_START( prof180x )
191static const floppy_config prof180x_floppy_config =
42192{
193   DEVCB_NULL,
194   DEVCB_NULL,
195   DEVCB_NULL,
196   DEVCB_NULL,
197   DEVCB_NULL,
198   FLOPPY_STANDARD_5_25_DSHD,
199   FLOPPY_OPTIONS_NAME(default),
200   NULL
201};
202
203/*
204static RTC8583_INTERFCE( rtc_intf )
205{
206   DEVCB_CPU_INPUT_LINE(HD64180_TAG, INPUT_LINE_INT2)
207};
208*/
209
210void prof180x_state::machine_start()
211{
212   // register for state saving
213   state_save_register_global(machine, m_c0);
214   state_save_register_global(machine, m_c1);
215   state_save_register_global(machine, m_c2);
216   state_save_register_global(machine, m_mm0);
217   state_save_register_global(machine, m_mm1);
43218}
44219
45static VIDEO_UPDATE( prof180x )
220void prof180x_state::machine_reset()
46221{
47    return 0;
222   for (int i = 0; i < 8; i++)
223   {
224      ls259_w(i, 0);
225   }
48226}
49227
50228static MACHINE_CONFIG_START( prof180x, prof180x_state )
51229    /* basic machine hardware */
52    MDRV_CPU_ADD("maincpu",Z80, XTAL_4MHz) // HD64180
230    MDRV_CPU_ADD(HD64180_TAG, Z80, XTAL_9_216MHz) // HD64180
53231    MDRV_CPU_PROGRAM_MAP(prof180x_mem)
54232    MDRV_CPU_IO_MAP(prof180x_io)
55233
56    MDRV_MACHINE_RESET(prof180x)
57
58234    /* video hardware */
59    MDRV_SCREEN_ADD("screen", RASTER)
235    MDRV_SCREEN_ADD(SCREEN_TAG, RASTER)
60236    MDRV_SCREEN_REFRESH_RATE(50)
61237    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
62238    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
r9700r9701
65241    MDRV_PALETTE_LENGTH(2)
66242    MDRV_PALETTE_INIT(black_and_white)
67243
68    MDRV_VIDEO_START(prof180x)
69    MDRV_VIDEO_UPDATE(prof180x)
244   /* devices */
245   MDRV_FLOPPY_4_DRIVES_ADD(prof180x_floppy_config)
246   MDRV_UPD765A_ADD(FDC9268_TAG, fdc_intf)
247   //MDRV_RTC8583_ADD(MK3835_TAG, rtc_intf)
248   MDRV_CENTRONICS_ADD(CENTRONICS_TAG, standard_centronics)
249
250   /* internal ram */
251   MDRV_RAM_ADD("messram")
252   MDRV_RAM_DEFAULT_SIZE("128K")
253   MDRV_RAM_EXTRA_OPTIONS("256K,512K")
70254MACHINE_CONFIG_END
71255
72256/* ROM definition */
257
73258ROM_START( prof180x )
74   ROM_REGION( 0x10000, "maincpu", 0 )
75   ROM_LOAD( "pmon1_3.bin", 0x0000, 0x4000, CRC(32986688) SHA1(a6229d7e66ef699722ca3d41179fe3f1b75185d4))
76   ROM_LOAD( "pmon1_4.bin", 0x0000, 0x4000, CRC(ed03f49f) SHA1(e016f9e0b89ab64c6203e2e46501d0b09f74ee9b))
77   ROM_LOAD( "pmon1_5.bin", 0x0000, 0x4000, CRC(f43d185c) SHA1(a7a219b3d48c74602b3116cfcd34e44d6e7bc423))
78   ROM_LOAD( "pmon.bin", 0x0000, 0x4000, CRC(4f3732d7) SHA1(7dc27262db4e0c8f109470253b9364a216909f2c))
79   ROM_LOAD( "eboot1.bin", 0x0000, 0x8000, CRC(7a164b3c) SHA1(69367804b5cbc0633e3d7bbbcc256c2c8c9e7aca))
80   ROM_LOAD( "eboot2.bin", 0x0000, 0x8000, CRC(0c2d4301) SHA1(f1a4f457e287b19e14d8ccdbc0383f183d8a3efe))
81   ROM_LOAD( "epmon1.bin", 0x0000, 0x10000, CRC(27aabfb4) SHA1(41adf038c474596dbf7d387a1a7f33ed86aa7869))
82   ROM_LOAD( "epmon2.bin", 0x0000, 0x10000, CRC(3b8a7b59) SHA1(33741f0725e3eaa21c6881c712579b3c1fd30607))
83   ROM_LOAD( "epmon3.bin", 0x0000, 0x10000, CRC(51313af1) SHA1(60c293171a1c7cb9a5ff6d681e61894f44fddbd1))
259   ROM_REGION( 0x10000, HD64180_TAG, 0 )
260   ROM_SYSTEM_BIOS( 0, "pmon13", "pmon v1.3" )
261   ROMX_LOAD( "pmon1_3.z16", 0x00000, 0x04000, CRC(32986688) SHA1(a6229d7e66ef699722ca3d41179fe3f1b75185d4), ROM_BIOS(1) )
262   ROM_SYSTEM_BIOS( 1, "pmon14", "pmon v1.4" )
263   ROMX_LOAD( "pmon1_4.z16", 0x00000, 0x04000, CRC(ed03f49f) SHA1(e016f9e0b89ab64c6203e2e46501d0b09f74ee9b), ROM_BIOS(2) )
264   ROM_SYSTEM_BIOS( 2, "pmon15", "pmon v1.5" )
265   ROMX_LOAD( "pmon1_5.z16", 0x00000, 0x04000, CRC(f43d185c) SHA1(a7a219b3d48c74602b3116cfcd34e44d6e7bc423), ROM_BIOS(3) )
266   ROM_SYSTEM_BIOS( 3, "pmon", "pmon" )
267   ROMX_LOAD( "pmon.z16",    0x00000, 0x04000, CRC(4f3732d7) SHA1(7dc27262db4e0c8f109470253b9364a216909f2c), ROM_BIOS(4) )
268   ROM_SYSTEM_BIOS( 4, "eboot1", "eboot1" )
269   ROMX_LOAD( "eboot1.z16",  0x00000, 0x08000, CRC(7a164b3c) SHA1(69367804b5cbc0633e3d7bbbcc256c2c8c9e7aca), ROM_BIOS(5) )
270   ROM_SYSTEM_BIOS( 5, "eboot2", "eboot2" )
271   ROMX_LOAD( "eboot2.z16",  0x00000, 0x08000, CRC(0c2d4301) SHA1(f1a4f457e287b19e14d8ccdbc0383f183d8a3efe), ROM_BIOS(6) )
272   ROM_SYSTEM_BIOS( 6, "epmon1", "epmon1" )
273   ROMX_LOAD( "epmon1.z16",  0x00000, 0x10000, CRC(27aabfb4) SHA1(41adf038c474596dbf7d387a1a7f33ed86aa7869), ROM_BIOS(7) )
274   ROM_SYSTEM_BIOS( 7, "epmon2", "epmon2" )
275   ROMX_LOAD( "epmon2.z16",  0x00000, 0x10000, CRC(3b8a7b59) SHA1(33741f0725e3eaa21c6881c712579b3c1fd30607), ROM_BIOS(8) )
276   ROM_SYSTEM_BIOS( 8, "epmon3", "epmon3" )
277   ROMX_LOAD( "epmon3.z16",  0x00000, 0x10000, CRC(51313af1) SHA1(60c293171a1c7cb9a5ff6d681e61894f44fddbd1), ROM_BIOS(9) )
278
279   ROM_REGION( 0x157, "plds", 0 )
280   ROM_LOAD( "pal14l8.z10", 0x000, 0x157, NO_DUMP )
84281ROM_END
85282
283ROM_START( prof181x )
284   ROM_REGION( 0x10000, HD64180_TAG, 0 )
285   ROM_SYSTEM_BIOS( 0, "pmon13", "pmon v1.3" )
286   ROMX_LOAD( "pmon1_3.u13", 0x00000, 0x04000, CRC(32986688) SHA1(a6229d7e66ef699722ca3d41179fe3f1b75185d4), ROM_BIOS(1) )
287   ROM_SYSTEM_BIOS( 1, "pmon14", "pmon v1.4" )
288   ROMX_LOAD( "pmon1_4.u13", 0x00000, 0x04000, CRC(ed03f49f) SHA1(e016f9e0b89ab64c6203e2e46501d0b09f74ee9b), ROM_BIOS(2) )
289   ROM_SYSTEM_BIOS( 2, "pmon15", "pmon v1.5" )
290   ROMX_LOAD( "pmon1_5.u13", 0x00000, 0x04000, CRC(f43d185c) SHA1(a7a219b3d48c74602b3116cfcd34e44d6e7bc423), ROM_BIOS(3) )
291   ROM_SYSTEM_BIOS( 3, "pmon", "pmon" )
292   ROMX_LOAD( "pmon.u13",    0x00000, 0x04000, CRC(4f3732d7) SHA1(7dc27262db4e0c8f109470253b9364a216909f2c), ROM_BIOS(4) )
293   ROM_SYSTEM_BIOS( 4, "eboot1", "eboot1" )
294   ROMX_LOAD( "eboot1.u13",  0x00000, 0x08000, CRC(7a164b3c) SHA1(69367804b5cbc0633e3d7bbbcc256c2c8c9e7aca), ROM_BIOS(5) )
295   ROM_SYSTEM_BIOS( 5, "eboot2", "eboot2" )
296   ROMX_LOAD( "eboot2.u13",  0x00000, 0x08000, CRC(0c2d4301) SHA1(f1a4f457e287b19e14d8ccdbc0383f183d8a3efe), ROM_BIOS(6) )
297   ROM_SYSTEM_BIOS( 6, "epmon1", "epmon1" )
298   ROMX_LOAD( "epmon1.u13",  0x00000, 0x10000, CRC(27aabfb4) SHA1(41adf038c474596dbf7d387a1a7f33ed86aa7869), ROM_BIOS(7) )
299   ROM_SYSTEM_BIOS( 7, "epmon2", "epmon2" )
300   ROMX_LOAD( "epmon2.u13",  0x00000, 0x10000, CRC(3b8a7b59) SHA1(33741f0725e3eaa21c6881c712579b3c1fd30607), ROM_BIOS(8) )
301   ROM_SYSTEM_BIOS( 8, "epmon3", "epmon3" )
302   ROMX_LOAD( "epmon3.u13",  0x00000, 0x10000, CRC(51313af1) SHA1(60c293171a1c7cb9a5ff6d681e61894f44fddbd1), ROM_BIOS(9) )
303
304   ROM_REGION( 0x157, "plds", 0 ) // converted from JED files
305   ROM_LOAD( "pal20v8.u14", 0x000, 0x157, CRC(46da52b0) SHA1(c11362223c0d5c57c6ef970e66d674b89d8e7784) )
306   ROM_LOAD( "pal20v8.u15", 0x000, 0x157, CRC(19fef936) SHA1(579ad23ee3c0b1c64c584383f9c8085c6ce3d094) )
307   ROM_LOAD( "pal20v8.u19", 0x000, 0x157, CRC(69348c3b) SHA1(6eb8432660eb9b639a95b1973a54dab8b99f10ef) )
308   ROM_LOAD( "pal20v8.u21", 0x000, 0x157, CRC(6df4e281) SHA1(602fa4637cd9356acc31b2adfb3a084fd5a0bfcb) )
309ROM_END
310
86311/* Driver */
87312
88313/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    COMPANY   FULLNAME       FLAGS */
89COMP( 1986, prof180x,  0,       0,   prof180x,   prof180x,    0,  "Conitec Datensysteme",   "PROF-180X",      GAME_NOT_WORKING  | GAME_NO_SOUND)
314COMP( 1986, prof180x,  0,       0,   prof180x,   prof180x,    0,  "Conitec Datensysteme",   "PROF-180X",      GAME_NOT_WORKING | GAME_NO_SOUND )
315COMP( 1992, prof181x,  prof180x,0,   prof180x,   prof180x,    0,  "Conitec Datensysteme",   "PROF-181X",      GAME_NOT_WORKING | GAME_NO_SOUND )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team