Previous 15994 Revisions Next

r7803 Wednesday 14th April, 2010 at 11:20:09 UTC by Curt Coder
[VIDBRAIN] Added software list, background color, keyboard column 8.
[hash]vidbrain.xml*
[src/mess/drivers]vidbrain.c
[src/mess/includes]vidbrain.h

hash/vidbrain.xml
r0r7803
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3<!--
4
5  Undumped cartridges:
6
7  Expanders
8  EXP 1   Expander 1
9  EXP 2   Expander 2
10
11  Money Management Series
12  APL/S   The Computational Language
13  VB-59   The Programmable
14  VB-81   The Financier
15  VB-1000 Money Manager
16  VB-1100 Budget System
17  VB-1200 Information Manager
18 
19  Communication Series
20  CM01    Timeshare
21 
22  Education Series
23  ED07    Musicianship 1
24  ED08    Number Cross
25  ED09    Historical Simulation - France in the Old Regime
26 
27  Entertainment Series
28  EN07    Challenge Racer
29  EN08    Music Programmer
30  EN09    Programmable Football
31  EN10    Computer Life
32 
33  Demonstration Series
34  ST01    Demonstration
35
36-->
37<softwarelist name="vidbrain" description="VideoBrain Family Computer cartridges">
38
39  <!-- Education Series -->
40 
41  <software name="musictch">
42    <description>Music Teacher 1</description>
43    <year>1978</year>
44    <publisher>VideoBrain Computer Company</publisher>
45    <!-- <serial>ED01</serial> -->
46    <part name="cart" interface="vidbrain_cart">
47      <dataarea name="rom" size="2048">
48        <rom name="musicteacher1-ed01.bin" size="2048" crc="c8fee8cd" sha1="1a0a19ecedfb2d918e4e1a4eb604a07dc5e1113f" offset="0" />
49      </dataarea>
50    </part>
51  </software>
52  <software name="mathttr1">
53    <description>Math Tutor 1</description>
54    <year>1978</year>
55    <publisher>VideoBrain Computer Company</publisher>
56    <!-- <serial>ED02</serial> -->
57    <part name="cart" interface="vidbrain_cart">
58      <dataarea name="rom" size="4096">
59        <rom name="mathtutor1-ed02.bin" size="4096" crc="db47f770" sha1="efe9e5f7ee95e157af892b84de5653c0f85a13b0" offset="0" />
60      </dataarea>
61    </part>
62  </software>
63  <software name="wrdwise1">
64    <description>Wordwise 1</description>
65    <year>1978</year>
66    <publisher>VideoBrain Computer Company</publisher>
67    <!-- <serial>ED03</serial> -->
68    <part name="cart" interface="vidbrain_cart">
69      <dataarea name="rom" size="2048">
70        <rom name="wordwise1-ed03.bin" size="2048" crc="d1546212" sha1="91594485442e2dfad059e4ce42aa60b7a0519d91" offset="0" />
71      </dataarea>
72    </part>
73  </software>
74  <software name="wrdwise2">
75    <description>Wordwise 2</description>
76    <year>1978</year>
77    <publisher>VideoBrain Computer Company</publisher>
78    <!-- <serial>ED04</serial> -->
79    <part name="cart" interface="vidbrain_cart">
80      <dataarea name="rom" size="2048">
81        <rom name="wordwise2-ed04.bin" size="2048" crc="4a08e999" sha1="0b17ead29aea643da84d495ebab5220e547abf99" offset="0" />
82      </dataarea>
83    </part>
84  </software>
85  <software name="vidartst">
86    <description>VideoArtist</description>
87    <year>1978</year>
88    <publisher>VideoBrain Computer Company</publisher>
89    <!-- <serial>ED05</serial> -->
90    <part name="cart" interface="vidbrain_cart">
91      <dataarea name="rom" size="4096">
92        <rom name="videoartist-ed05.bin" size="4096" crc="d68795f8" sha1="dfb118d6bba837aa8e6b7feb19be7de40cd1e4fa" offset="0" />
93      </dataarea>
94    </part>
95  </software>
96  <software name="lemstand">
97    <description>Lemonade Stand</description>
98    <year>1978</year>
99    <publisher>VideoBrain Computer Company</publisher>
100    <!-- <serial>ED06</serial> -->
101    <part name="cart" interface="vidbrain_cart">
102      <dataarea name="rom" size="4096">
103        <rom name="lemonadestand-ed06.bin" size="4096" crc="27c08d93" sha1="faf47261797692e9081dc24f957f8f38dc1a975d" offset="0" />
104      </dataarea>
105    </part>
106  </software>
107
108  <!-- Entertainment Series -->
109 
110  <software name="gladiatr">
111    <description>Gladiator</description>
112    <year>1978</year>
113    <publisher>VideoBrain Computer Company</publisher>
114    <!-- <serial>EN01</serial> -->
115    <part name="cart" interface="vidbrain_cart">
116      <dataarea name="rom" size="4096">
117        <rom name="gladiator-en01.bin" size="4096" crc="e6a88a49" sha1="ffdb06a714cc5bafa980db0742d0364ee5658c05" offset="0" />
118      </dataarea>
119    </part>
120  </software>
121  <software name="pinball">
122    <description>Pinball</description>
123    <year>1978</year>
124    <publisher>VideoBrain Computer Company</publisher>
125    <!-- <serial>EN02</serial> -->
126    <part name="cart" interface="vidbrain_cart">
127      <dataarea name="rom" size="2048">
128        <rom name="pinball-en02.bin" size="2048" crc="484331ff" sha1="0bd04368692a55bf89f8ec7ff1a29cff3a398b9f" offset="0" />
129      </dataarea>
130    </part>
131  </software>
132  <software name="tennis">
133    <description>Tennis</description>
134    <year>1978</year>
135    <publisher>VideoBrain Computer Company</publisher>
136    <!-- <serial>EN03</serial> -->
137    <part name="cart" interface="vidbrain_cart">
138      <dataarea name="rom" size="4096">
139        <rom name="tennis-en03.bin" size="4096" crc="1942f852" sha1="74e8304d8ad0328655627e21c0305b72c11a5dda" offset="0" />
140      </dataarea>
141    </part>
142  </software>
143  <software name="checkers">
144    <description>Checkers</description>
145    <year>1978</year>
146    <publisher>VideoBrain Computer Company</publisher>
147    <!-- <serial>EN04</serial> -->
148    <part name="cart" interface="vidbrain_cart">
149      <dataarea name="rom" size="4096">
150        <rom name="checkers-en04.bin" size="4096" crc="24c53410" sha1="f12f448d1f62b56318cb94b8f802180d561e3ee5" offset="0" />
151      </dataarea>
152    </part>
153  </software>
154  <software name="blakjack">
155    <description>Blackjack</description>
156    <year>1978</year>
157    <publisher>VideoBrain Computer Company</publisher>
158    <!-- <serial>EN05</serial> -->
159    <part name="cart" interface="vidbrain_cart">
160      <dataarea name="rom" size="2048">
161        <rom name="blackjack-en05.bin" size="2048" crc="47f02b92" sha1="23fd10c9674d304f2a0a4ae37e3afb6a25906b1c" offset="0" />
162      </dataarea>
163    </part>
164  </software>
165  <software name="vicevers">
166    <description>Vice Versa</description>
167    <year>1978</year>
168    <publisher>VideoBrain Computer Company</publisher>
169    <!-- <serial>EN06</serial> -->
170    <part name="cart" interface="vidbrain_cart">
171      <dataarea name="rom" size="4096">
172        <rom name="viceversa-en06.bin" size="4096" crc="e23504ee" sha1="c5b4b62c9e0db998c2c4df6f71713a1df35c8bf4" offset="0" />
173      </dataarea>
174    </part>
175  </software>
176</softwarelist>
src/mess/includes/vidbrain.h
r7802r7803
1818   /* keyboard state */
1919   UINT8 keylatch;
2020   int joy_enable;
21   int uv201_31;
2122
2223   /* video state */
2324   UINT8 *video_ram;
25   UINT8 bg_color;
2426
2527   /* sound state */
2628   int sound_clk;
src/mess/drivers/vidbrain.c
r7802r7803
11/***************************************************************************
22
3    VideoBrain Family Computer
3    VideoBrain FamilyComputer
44
5   http://www.atariprotos.com/othersystems/videobrain/videobrain.htm
56   http://www.seanriddle.com/vbinfo.html
67   http://www.seanriddle.com/videobrain.html
78
r7802r7803
1617   - colors
1718   - low resolution mode
1819   - discrete sound
19   - keyboard column 8
2020   - joystick scan timer 555
2121   - reset on cartridge eject
2222   - expander 1 (cassette, RS-232)
r7802r7803
3737***************************************************************************/
3838
3939/*-------------------------------------------------
40    vlsi_r - video VLSI read
41-------------------------------------------------*/
42
43static READ8_HANDLER( vlsi_r )
44{
45   switch (offset)
46   {
47   case 0xfa:
48   case 0xfb:
49      return 0xff;
50   }
51
52   return 0;
53}
54
55/*-------------------------------------------------
56    vlsi_w - video VLSI write
57-------------------------------------------------*/
58
59static WRITE8_HANDLER( vlsi_w )
60{
61   vidbrain_state *state = (vidbrain_state *)space->machine->driver_data;
62
63   switch (offset)
64   {
65   case 0xf5:
66      state->bg_color = data;
67      break;
68
69   case 0xf7:
70      /*
71
72         bit      description
73
74         0     
75         1     
76         2     
77         3     
78         4      keyboard column 8
79         5     
80         6     
81         7     
82
83      */
84
85      state->uv201_31 = BIT(data, 4);
86      break;
87   }
88
89   logerror("VLSI %02x = %02x\n", offset, data);
90}
91
92/*-------------------------------------------------
4093    keyboard_w - keyboard column write
4194-------------------------------------------------*/
4295
43WRITE8_HANDLER( keyboard_w )
96static WRITE8_HANDLER( keyboard_w )
4497{
4598   /*
4699
r7802r7803
66119    keyboard_r - keyboard row read
67120-------------------------------------------------*/
68121
69READ8_HANDLER( keyboard_r )
122static READ8_HANDLER( keyboard_r )
70123{
71124   /*
72125
r7802r7803
95148   if (BIT(state->keylatch, 5)) data |= input_port_read(space->machine, "IO05");
96149   if (BIT(state->keylatch, 6)) data |= input_port_read(space->machine, "IO06");
97150   if (BIT(state->keylatch, 7)) data |= input_port_read(space->machine, "IO07");
98//   if () data |= input_port_read(space->machine, "UV201-31");
151   if (state->uv201_31)      data |= input_port_read(space->machine, "UV201-31");
99152
100153   return data;
101154}
r7802r7803
104157    sound_w - sound clock write
105158-------------------------------------------------*/
106159
107WRITE8_HANDLER( sound_w )
160static WRITE8_HANDLER( sound_w )
108161{
109162   /*
110163
r7802r7803
150203-------------------------------------------------*/
151204
152205static ADDRESS_MAP_START( vidbrain_mem, ADDRESS_SPACE_PROGRAM, 8 )
153   ADDRESS_MAP_UNMAP_HIGH
154206   AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0xc000) AM_ROM
155//   AM_RANGE(0x0800, 0x08ff) video chip
207   AM_RANGE(0x0800, 0x08ff) AM_READWRITE(vlsi_r, vlsi_w)
156208   AM_RANGE(0x0c00, 0x0fff) AM_MIRROR(0xe000) AM_RAM AM_BASE_MEMBER(vidbrain_state, video_ram)
157209   AM_RANGE(0x1000, 0x1fff) AM_ROM
158210   AM_RANGE(0x2000, 0x27ff) AM_MIRROR(0xc000) AM_ROM
r7802r7803
215267   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('8')
216268   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('6')
217269   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('+')
218   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SPECIAL ALARM") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
270   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SPECIAL ALARM") PORT_CODE(KEYCODE_F4)
219271
220272   PORT_START("IO06")
221273   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('7')
222274   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('5')
223275   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('3')
224   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("NEXT CLOCK") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
276   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("NEXT CLOCK") PORT_CODE(KEYCODE_F3)
225277
226278   PORT_START("IO07")
227279   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('%')
228280   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('4')
229281   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('2')
230   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PREVIOUS COLOR") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
282   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PREVIOUS COLOR") PORT_CODE(KEYCODE_F2)
231283
232284   PORT_START("UV201-31")
233285   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('.')
234286   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('1')
235287   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') PORT_CHAR('0')
236   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BACK TEXT") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
288   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BACK TEXT") PORT_CODE(KEYCODE_F1)
237289
238290   PORT_START("RESET")
239291   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MASTER CONTROL") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CHANGED(trigger_reset, 0)
r7802r7803
274326***************************************************************************/
275327
276328/*-------------------------------------------------
329    PALETTE_INIT( vidbrain )
330-------------------------------------------------*/
331
332static PALETTE_INIT( vidbrain )
333{
334   palette_set_color_rgb(machine,  0, 0x00, 0x00, 0x00 ); //
335   palette_set_color_rgb(machine,  1, 0xff, 0x00, 0x00 ); // red
336   palette_set_color_rgb(machine,  2, 0x00, 0xff, 0x00 ); //
337   palette_set_color_rgb(machine,  3, 0xff, 0xff, 0x00 ); //
338   palette_set_color_rgb(machine,  4, 0x00, 0x00, 0xff ); // blue
339   palette_set_color_rgb(machine,  5, 0xff, 0x00, 0xff ); //
340   palette_set_color_rgb(machine,  6, 0x00, 0xff, 0xff ); //
341   palette_set_color_rgb(machine,  7, 0xff, 0xff, 0xff ); //
342
343   palette_set_color_rgb(machine,  8, 0x00, 0x00, 0x00 ); //
344   palette_set_color_rgb(machine,  9, 0x80, 0x00, 0x00 ); // red
345   palette_set_color_rgb(machine, 10, 0x00, 0x80, 0x00 ); //
346   palette_set_color_rgb(machine, 11, 0x80, 0x80, 0x00 ); //
347   palette_set_color_rgb(machine, 12, 0x00, 0x00, 0x80 ); // blue
348   palette_set_color_rgb(machine, 13, 0x80, 0x00, 0x80 ); //
349   palette_set_color_rgb(machine, 14, 0x00, 0x80, 0x80 ); //
350   palette_set_color_rgb(machine, 15, 0x80, 0x80, 0x80 ); //
351}
352
353/*-------------------------------------------------
277354    VIDEO_START( vidbrain )
278355-------------------------------------------------*/
279356
r7802r7803
299376
300377         for (int x = 0; x < 8; x++)
301378         {
302            *BITMAP_ADDR16(bitmap, y, (sx * 8) + x) = BIT(data, 7);
379            *BITMAP_ADDR16(bitmap, y, (sx * 8) + x) = BIT(data, 7) ? 7 : state->bg_color;
303380            data <<= 1;
304381         }
305382      }
r7802r7803
380457   /* register for state saving */
381458   state_save_register_global(machine, state->keylatch);
382459   state_save_register_global(machine, state->joy_enable);
460   state_save_register_global(machine, state->uv201_31);
461   state_save_register_global(machine, state->bg_color);
383462   state_save_register_global(machine, state->sound_clk);
384463   state_save_register_global_array(machine, state->sound_q);
385464}
r7802r7803
411490    MDRV_SCREEN_VISIBLE_AREA(0, 128-1, 0, 49-1)
412491   MDRV_GFXDECODE(vidbrain)
413492    MDRV_PALETTE_LENGTH(16)
493    MDRV_PALETTE_INIT(vidbrain)
414494
415495    MDRV_VIDEO_START(vidbrain)
416496    MDRV_VIDEO_UPDATE(vidbrain)
r7802r7803
450530***************************************************************************/
451531
452532/*    YEAR  NAME      PARENT   COMPAT   MACHINE      INPUT      INIT   COMPANY                     FULLNAME                  FLAGS */
453COMP( 1977, vidbrain,   0,      0,      vidbrain,   vidbrain,   0,      "VideoBrain Computer Company",   "VideoBrain Family Computer",   GAME_NOT_WORKING | GAME_NO_SOUND )
533COMP( 1977, vidbrain,   0,      0,      vidbrain,   vidbrain,   0,      "VideoBrain Computer Company",   "VideoBrain FamilyComputer",   GAME_NOT_WORKING | GAME_NO_SOUND )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team