Previous 15994 Revisions Next

r12950 Wednesday 28th September, 2011 at 09:05:20 UTC by Robbbert
MCCPM - added extra bios, added status port, added notes.
[src/mess/drivers]mccpm.c

src/mess/drivers/mccpm.c
r12949r12950
44
55        31/08/2010 Skeleton driver.
66        18/11/2010 Connected to a terminal
7        28/09/2011 Added more bioses
78
9Some Monitor commands (varies between versions):
10
11B - boot a floppy (^N to regain control)
12E - prints a number
13I - Select boot drive/set parameters
14K,O - display version header
15N - newline
16Z - print 'EFFF'
17
18URL for v3.4: http://www.hanshehl.de/mc-prog.htm (German language)
19
20I/O ports (my guess)
2130 - fdc (1st drive)
2240 - fdc (2nd drive)
23F0 - terminal in/out
24F1 - terminal status
25
26SIO? - F0 to F3
27PIO A-Data 0F4h, A-Command 0F5h, B-Data 0F6h, B-Command 0F7h
28
29'maincpu' (F59C): unmapped i/o memory write to 00F1 = 01 & FF
30'maincpu' (F59C): unmapped i/o memory write to 00F1 = 00 & FF
31'maincpu' (F59C): unmapped i/o memory write to 00F1 = 03 & FF
32'maincpu' (F59C): unmapped i/o memory write to 00F1 = E1 & FF
33'maincpu' (F59C): unmapped i/o memory write to 00F1 = 04 & FF
34'maincpu' (F59C): unmapped i/o memory write to 00F1 = 4C & FF
35'maincpu' (F59C): unmapped i/o memory write to 00F1 = 05 & FF
36'maincpu' (F59C): unmapped i/o memory write to 00F1 = EA & FF
37'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 01 & FF
38'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 00 & FF
39'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 03 & FF
40'maincpu' (F5A5): unmapped i/o memory write to 00F3 = E1 & FF
41'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 04 & FF
42'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 4C & FF
43'maincpu' (F5A5): unmapped i/o memory write to 00F3 = 05 & FF
44'maincpu' (F5A5): unmapped i/o memory write to 00F3 = EA & FF
45'maincpu' (F5A9): unmapped i/o memory write to 00F5 = CF & FF
46'maincpu' (F5AD): unmapped i/o memory write to 00F5 = 7F & FF
47'maincpu' (F5B1): unmapped i/o memory write to 00F7 = CF & FF
48'maincpu' (F5B4): unmapped i/o memory write to 00F7 = 00 & FF
49'maincpu' (F149): unmapped i/o memory write to 0040 = D0 & FF
50'maincpu' (F14B): unmapped i/o memory write to 0030 = D0 & FF
51
852****************************************************************************/
953#define ADDRESS_MAP_MODERN
1054
r12949r12950
2569
2670   required_device<cpu_device> m_maincpu;
2771   required_device<device_t> m_terminal;
28   DECLARE_READ8_MEMBER( mccpm_f0_r );
29   DECLARE_WRITE8_MEMBER( kbd_put );
30   UINT8 *m_ram;
72   DECLARE_READ8_MEMBER(mccpm_f0_r);
73   DECLARE_READ8_MEMBER(mccpm_f1_r);
74   DECLARE_WRITE8_MEMBER(kbd_put);
75   UINT8 *m_p_ram;
3176   UINT8 m_term_data;
3277   virtual void machine_reset();
3378};
r12949r12950
4186   return ret;
4287}
4388
89// bit 0 - key pressed
90// bit 2 - ready to send to terminal
91READ8_MEMBER( mccpm_state::mccpm_f1_r )
92{
93   return (m_term_data) ? 5 : 4;
94}
95
4496static ADDRESS_MAP_START(mccpm_mem, AS_PROGRAM, 8, mccpm_state)
4597   ADDRESS_MAP_UNMAP_HIGH
46   AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE(m_ram)
98   AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE(m_p_ram)
4799ADDRESS_MAP_END
48100
49101static ADDRESS_MAP_START( mccpm_io, AS_IO, 8, mccpm_state)
50102   ADDRESS_MAP_UNMAP_HIGH
51103   ADDRESS_MAP_GLOBAL_MASK(0xff)
52104   AM_RANGE(0xf0, 0xf0) AM_READ(mccpm_f0_r) AM_DEVWRITE_LEGACY(TERMINAL_TAG, terminal_write)
105   AM_RANGE(0xf1, 0xf1) AM_READ(mccpm_f1_r)
53106ADDRESS_MAP_END
54107
55108/* Input ports */
r12949r12950
57110INPUT_PORTS_END
58111
59112
60MACHINE_RESET_MEMBER(mccpm_state)
113MACHINE_RESET_MEMBER( mccpm_state )
61114{
62115   UINT8* bios = machine().region("maincpu")->base();
63   memcpy(m_ram, bios, 0x1000);
116   memcpy(m_p_ram, bios, 0x1000);
64117}
65118
66119WRITE8_MEMBER( mccpm_state::kbd_put )
r12949r12950
87140/* ROM definition */
88141ROM_START( mccpm )
89142   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
90   ROM_LOAD( "mon36.j15", 0x0000, 0x1000, CRC(9c441537) SHA1(f95bad52d9392b8fc9d9b8779b7b861672a0022b))
143   ROM_SYSTEM_BIOS(0, "v36", "V3.6")
144   ROMX_LOAD( "mon36.j15",   0x0000, 0x1000, CRC(9c441537) SHA1(f95bad52d9392b8fc9d9b8779b7b861672a0022b), ROM_BIOS(1))
145   ROM_SYSTEM_BIOS(1, "v34", "V3.4")
146   ROMX_LOAD( "monhemc.bin", 0x0000, 0x1000, CRC(cae7b56e) SHA1(1f40be9491a595e6705099a452743cc0d49bfce8), ROM_BIOS(2))
147   ROM_SYSTEM_BIOS(2, "v34a", "V3.4 (alt)")
148   ROMX_LOAD( "mc01mon.bin", 0x0000, 0x0d00, CRC(d1c89043) SHA1(f52a0ed3793dde0de74596be7339233b6a1770af), ROM_BIOS(3))
91149ROM_END
92150
93151/* Driver */
94152
95/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    COMPANY   FULLNAME       FLAGS */
96COMP( 1981, mccpm,  0,       0,      mccpm,     mccpm,    0, "GRAF Elektronik Systeme GmbH", "mc-CP/M-Computer",   GAME_NOT_WORKING | GAME_NO_SOUND)
97
153/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    COMPANY                          FULLNAME       FLAGS */
154COMP( 1981, mccpm,  0,      0,       mccpm,     mccpm,    0, "GRAF Elektronik Systeme GmbH", "mc-CP/M-Computer",   GAME_NOT_WORKING | GAME_NO_SOUND)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team