Previous 199869 Revisions Next

r22511 Tuesday 23rd April, 2013 at 13:00:21 UTC by Robbbert
New skeleton driver
-------------------
Ravensburger Selbstbaucomputer [Robbbert]
[src/mess]mess.lst mess.mak
[src/mess/drivers]ravens.c*
[src/mess/layout]ravens.lay*

trunk/src/mess/mess.lst
r22510r22511
22082208binbug
22092209dg680
22102210besta88
2211ravens
trunk/src/mess/layout/ravens.lay
r0r22511
1<?xml version="1.0"?>
2<mamelayout version="2">
3   <element name="digit" defstate="0">
4      <led7seg>
5         <color red="0.75" green="0.0" blue="0.0" />
6      </led7seg>
7   </element>
8   <element name="background">
9      <rect>
10         <bounds left="0" top="0" right="1" bottom="1" />
11         <color red="0.0" green="0.0" blue="0.0" />
12      </rect>
13   </element>
14
15   <view name="Default Layout">
16      <!-- Black background -->
17      <bezel element="background">
18         <bounds left="00" top="00" right="400" bottom="100" />
19      </bezel>
20
21      <bezel name="digit0" element="digit">
22         <bounds x="340" y="10" width="50" height="80" />
23      </bezel>
24      <bezel name="digit1" element="digit">
25         <bounds x="280" y="10" width="50" height="80" />
26      </bezel>
27      <bezel name="digit2" element="digit">
28         <bounds x="190" y="10" width="50" height="80" />
29      </bezel>
30      <bezel name="digit3" element="digit">
31         <bounds x="130" y="10" width="50" height="80" />
32      </bezel>
33      <bezel name="digit4" element="digit">
34         <bounds x="70" y="10" width="50" height="80" />
35      </bezel>
36      <bezel name="digit5" element="digit">
37         <bounds x="10" y="10" width="50" height="80" />
38      </bezel>
39   </view>
40</mamelayout>
Property changes on: trunk/src/mess/layout/ravens.lay
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/mess/mess.mak
r22510r22511
12081208   $(MESS_DRIVERS)/p112.o      \
12091209   $(MESS_DRIVERS)/phunsy.o    \
12101210   $(MESS_DRIVERS)/pimps.o     \
1211   $(MESS_DRIVERS)/ravens.o    \
12111212   $(MESS_DRIVERS)/sbc6510.o   \
12121213   $(MESS_DRIVERS)/sitcom.o    \
12131214   $(MESS_DRIVERS)/slc1.o      \
r22510r22511
23032304$(MESS_DRIVERS)/pro80.o:    $(MESS_LAYOUT)/pro80.lh
23042305$(MESS_DRIVERS)/px4.o:      $(MESS_LAYOUT)/px4.lh
23052306$(MESS_DRIVERS)/px8.o:      $(MESS_LAYOUT)/px8.lh
2307$(MESS_DRIVERS)/ravens.o:   $(MESS_LAYOUT)/ravens.lh
23062308$(MESS_DRIVERS)/savia84.o:  $(MESS_LAYOUT)/savia84.lh
23072309$(MESS_DRIVERS)/sc1.o:      $(MESS_LAYOUT)/sc1.lh
23082310$(MESS_DRIVERS)/sc2.o:      $(MESS_LAYOUT)/sc2.lh
trunk/src/mess/drivers/ravens.c
r0r22511
1/***************************************************************************
2
3Ravensburger Selbstbaucomputer
4
5This is a project described in "Ravensburger" magazine. You had to make
6the entire thing (including the circuit boards) yourself.
7
8http://petersieg.bplaced.com/?2650_Computer:2650_Selbstbaucomputer
9
10        2013-04-23 Skeleton driver.
11
12Hardware:
13        0000-07FF ROM "MON1"
14        0800-1FFF RAM (3x HM6116)
15        24 pushbuttons and 6-digit LED display on front panel.
16        Other buttons and switches on the main board.
17
18The few photos show the CPU and a number of ordinary 74LSxxx chips.
19There is a XTAL of unknown frequency.
20
21There is a cassette interface..
22
23ToDo:
24- Everything
25
26****************************************************************************/
27
28#include "emu.h"
29#include "cpu/s2650/s2650.h"
30//#include "sound/speaker.h"
31#include "ravens.lh"
32
33
34class ravens_state : public driver_device
35{
36public:
37   ravens_state(const machine_config &mconfig, device_type type, const char *tag)
38      : driver_device(mconfig, type, tag),
39   m_maincpu(*this, "maincpu")
40//   , m_speaker(*this, "speaker")
41   { }
42
43   DECLARE_READ8_MEMBER(port07_r);
44   DECLARE_WRITE8_MEMBER(port00_w);
45   DECLARE_WRITE8_MEMBER(port06_w);
46   UINT8 m_last_key;
47   bool m_speaker_state;
48   required_device<cpu_device> m_maincpu;
49//   required_device<speaker_sound_device> m_speaker;
50};
51
52WRITE8_MEMBER( ravens_state::port00_w )
53{
54   output_set_digit_value(offset, data);
55}
56
57WRITE8_MEMBER( ravens_state::port06_w )
58{
59//   m_speaker_state ^=1;
60//   speaker_level_w(m_speaker, m_speaker_state);
61}
62
63READ8_MEMBER( ravens_state::port07_r )
64{
65   UINT8 keyin, i, data = 0x40;
66
67   keyin = ioport("X0")->read();
68   if (keyin != 0xff)
69      for (i = 0; i < 8; i++)
70         if BIT(~keyin, i)
71            data = i | 0xc0;
72
73   keyin = ioport("X1")->read();
74   if (keyin != 0xff)
75      for (i = 0; i < 8; i++)
76         if BIT(~keyin, i)
77            data = i | 0xc8;
78
79   if (data == m_last_key)
80      data &= 0x7f;
81   else
82      m_last_key = data;
83
84   data |= ioport("X2")->read();
85
86   return data;
87}
88
89static ADDRESS_MAP_START( ravens_mem, AS_PROGRAM, 8, ravens_state )
90   ADDRESS_MAP_UNMAP_HIGH
91   AM_RANGE( 0x0000, 0x07ff) AM_ROM
92   AM_RANGE( 0x0800, 0x1fff) AM_RAM
93ADDRESS_MAP_END
94
95static ADDRESS_MAP_START( ravens_io, AS_IO, 8, ravens_state )
96   ADDRESS_MAP_UNMAP_HIGH
97   AM_RANGE(0x00, 0x03) AM_WRITE(port00_w) // 4-led display
98   AM_RANGE(0x06, 0x06) AM_WRITE(port06_w)  // speaker (NOT a keyclick)
99   AM_RANGE(0x07, 0x07) AM_READ(port07_r) // pushbuttons
100   //AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(ravens_cass_in,ravens_cass_out)
101   AM_RANGE(0x102, 0x103) AM_NOP // stops error log filling up while using debug
102ADDRESS_MAP_END
103
104/* Input ports */
105static INPUT_PORTS_START( ravens )
106   PORT_START("X0")
107   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0')
108   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1')
109   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2')
110   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3')
111   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4')
112   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5')
113   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6')
114   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7')
115
116   PORT_START("X1")
117   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8')
118   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9')
119   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A')
120   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B')
121   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C')
122   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D')
123   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E')
124   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F')
125
126   PORT_START("X2")
127   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("NXT") PORT_CODE(KEYCODE_UP) PORT_CHAR('^')
128   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ADR") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-')
129INPUT_PORTS_END
130
131
132static MACHINE_CONFIG_START( ravens, ravens_state )
133   /* basic machine hardware */
134   MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz)
135   MCFG_CPU_PROGRAM_MAP(ravens_mem)
136   MCFG_CPU_IO_MAP(ravens_io)
137
138   /* video hardware */
139   MCFG_DEFAULT_LAYOUT(layout_ravens)
140
141   /* sound hardware */
142//   MCFG_SPEAKER_STANDARD_MONO("mono")
143//   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
144//   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
145MACHINE_CONFIG_END
146
147/* ROM definition */
148ROM_START( ravens )
149   ROM_REGION( 0x8000, "maincpu", 0 )
150   ROM_SYSTEM_BIOS(0, "v2.0", "V2.0")
151   ROMX_LOAD( "mon_v2.0.bin", 0x0000, 0x0800, CRC(bcd47c58) SHA1(f261a3f128fbedbf59a8b5480758fff4d7f76de1), ROM_BIOS(1))
152   ROM_SYSTEM_BIOS(1, "v0.9", "V0.9")
153   ROMX_LOAD( "mon_v0.9.bin", 0x0000, 0x0800, CRC(785eb1ad) SHA1(c316b8ac32ab6aa37746af37b9f81a23367fedd8), ROM_BIOS(2))
154ROM_END
155
156/* Driver */
157
158/*    YEAR  NAME     PARENT   COMPAT   MACHINE    INPUT     INIT     COMPANY    FULLNAME       FLAGS */
159COMP( 1979, ravens,  0,       0,       ravens,  ravens, driver_device, 0,     "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
Property changes on: trunk/src/mess/drivers/ravens.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Previous 199869 Revisions Next


© 1997-2024 The MAME Team