Previous 199869 Revisions Next

r33883 Monday 15th December, 2014 at 07:38:55 UTC by Miodrag Milanović
Merge pull request #78 from ramiropolla/windows

Fix crash on fatalerror from winwindow_video_window_create()
[src/emu/cpu/tms0980]tms0980.c tms0980.h
[src/mess/drivers]ampro.c mathmagi.c pc9801.c tandy12.c
[src/mess/layout]tandy12.lay

trunk/src/emu/cpu/tms0980/tms0980.c
r242394r242395
9292#define M_SSE               0x00080000 /* Special Status Enable */
9393#define M_SSS               0x00100000 /* Special Status Sample */
9494
95#define M_RSTR              0x00200000 /* -> line #36, F_RSTR (TMC02x0 custom) */
96#define M_UNK1              0x00400000 /* -> line #37, F_???? (TMC0270 custom) */
95#define M_RSTR              0x00200000 /* -> line #36, F_RSTR (TMS02x0 custom) */
96#define M_UNK1              0x00400000 /* -> line #37, F_???? (TMS0270 custom) */
9797
9898/* Standard/fixed instructions - these are documented more in their specific handlers below */
9999#define F_BR                0x00000001
r242394r242395
154154// - 32-term microinstructions PLA between the RAM and ROM, supporting 15 microinstructions
155155// - 16-term output PLA and segment PLA above the RAM (rotate opla 90 degrees)
156156const device_type TMS0970 = &device_creator<tms0970_cpu_device>; // 28-pin DIP, 11 R pins
157// TMS0950 is same?
157158
158// TMC0270 on the other hand, is a TMS0980 with earrings and a new hat. The new changes look like a quick afterthought, almost hacky
159// TMS0270 on the other hand, is a TMS0980 with earrings and a new hat. The new changes look like a quick afterthought, almost hacky
159160// - RAM, ROM, and main instructions PLA is exactly the same as TMS0980
160161// - 64-term microinstructions PLA between the RAM and ROM, supporting 20 microinstructions plus optional separate lines for custom opcode handling
161162// - 48-term output PLA above the RAM (rotate opla 90 degrees)
162const device_type TMC0270 = &device_creator<tmc0270_cpu_device>; // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O)
163// TMC0260 is same? except opla is 32 instead of 48 terms
163const device_type TMS0270 = &device_creator<tms0270_cpu_device>; // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O)
164// TMS0260 is same? except opla is 32 instead of 48 terms
164165
165166
166167static ADDRESS_MAP_START(program_11bit_9, AS_PROGRAM, 16, tms1xxx_cpu_device)
r242394r242395
249250}
250251
251252
252tmc0270_cpu_device::tmc0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
253   : tms0980_cpu_device(mconfig, TMC0270, "TMC0270", tag, owner, clock, 16, 16, 4, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tmc0270", __FILE__)
253tms0270_cpu_device::tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
254   : tms0980_cpu_device(mconfig, TMS0270, "TMS0270", tag, owner, clock, 16, 16, 4, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tms0270", __FILE__)
254255{
255256}
256257
r242394r242395
309310}
310311
311312
312static MACHINE_CONFIG_FRAGMENT(tmc0270)
313static MACHINE_CONFIG_FRAGMENT(tms0270)
313314
314315   // main opcodes PLA, microinstructions PLA, output PLA
315316   MCFG_PLA_ADD("ipla", 9, 22, 24)
r242394r242395
320321   MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY)
321322MACHINE_CONFIG_END
322323
323machine_config_constructor tmc0270_cpu_device::device_mconfig_additions() const
324machine_config_constructor tms0270_cpu_device::device_mconfig_additions() const
324325{
325   return MACHINE_CONFIG_NAME(tmc0270);
326   return MACHINE_CONFIG_NAME(tms0270);
326327}
327328
328329
r242394r242395
396397   m_cs = 0;
397398   m_r = 0;
398399   m_o = 0;
399   m_o_index = 0;
400400   m_cki_bus = 0;
401401   m_c4 = 0;
402402   m_p = 0;
r242394r242395
434434   save_item(NAME(m_cs));
435435   save_item(NAME(m_r));
436436   save_item(NAME(m_o));
437   save_item(NAME(m_o_index));
438437   save_item(NAME(m_cki_bus));
439438   save_item(NAME(m_c4));
440439   save_item(NAME(m_p));
r242394r242395
475474   m_icountptr = &m_icount;
476475}
477476
478void tmc0270_cpu_device::device_start()
477void tms0270_cpu_device::device_start()
479478{
480479   // common init
481480   tms1xxx_cpu_device::device_start();
r242394r242395
635634   UINT32 mask = m_mpla->read(sel);
636635   mask ^= 0x43fc3; // invert active-negative
637636   
638   // M_RSTR is specific to TMC02x0, it redirects to F_RSTR
639   // M_UNK1 is specific to TMC0270, unknown yet
637   // M_RSTR is specific to TMS02x0, it redirects to F_RSTR
638   // M_UNK1 is specific to TMS0270, unknown yet
640639   //                      _______  ______                                _____  _____  _____  _____  ______  _____  ______  _____                            _____
641640   const UINT32 md[22] = { M_NDMTP, M_DMTP, M_AUTY, M_AUTA, M_CKM, M_SSE, M_CKP, M_YTP, M_MTP, M_ATN, M_NATN, M_MTN, M_15TN, M_CKN, M_NE, M_C8, M_SSS, M_CME, M_CIN, M_STO, M_RSTR, M_UNK1 };
642641   
r242394r242395
683682      m_micro_direct[op] = decode_micro(op);
684683}
685684
686void tmc0270_cpu_device::device_reset()
685void tms0270_cpu_device::device_reset()
687686{
688687   // common reset
689688   tms0980_cpu_device::device_reset();
r242394r242395
747746   next_pc();
748747}
749748
750void tmc0270_cpu_device::read_opcode()
749void tms0270_cpu_device::read_opcode()
751750{
752751   tms0980_cpu_device::read_opcode();
753752   
r242394r242395
764763
765764void tms1xxx_cpu_device::write_o_output(UINT8 index)
766765{
767   m_o_index = index;
768   
769766   // a hardcoded table is supported if the output pla is unknown
770767   m_o = (c_output_pla == NULL) ? m_opla->read(index) : c_output_pla[index];
771768   m_write_o(0, m_o & m_o_mask, 0xffff);
r242394r242395
773770
774771void tms0970_cpu_device::write_o_output(UINT8 index)
775772{
776   m_o_index = index;
777
778773   m_o = m_spla->read(index);
779774   m_write_o(0, m_o & m_o_mask, 0xffff);
780775}
781776
782777
783void tmc0270_cpu_device::dynamic_output()
778void tms0270_cpu_device::dynamic_output()
784779{
785780   // TODO..
786781   
r242394r242395
798793   return (k & 0xf) | k3;
799794}
800795
801UINT8 tmc0270_cpu_device::read_k_input()
796UINT8 tms0270_cpu_device::read_k_input()
802797{
803798   // TODO..
804799   
r242394r242395
10191014}
10201015
10211016
1022// TMC0270-specific
1023void tmc0270_cpu_device::op_tdo()
1017// TMS0270-specific
1018void tms0270_cpu_device::op_tdo()
10241019{
10251020   // TDO: transfer data out
10261021   if (m_status)
r242394r242395
10311026   // write to output is done in dynamic_output
10321027}
10331028
1034void tmc0270_cpu_device::op_setr()
1029void tms0270_cpu_device::op_setr()
10351030{
10361031   // same as default, but handle write to output in dynamic_output
10371032   m_r = m_r | (1 << m_y);
10381033}
10391034
1040void tmc0270_cpu_device::op_rstr()
1035void tms0270_cpu_device::op_rstr()
10411036{
10421037   // same as default, but handle write to output in dynamic_output
10431038   m_r = m_r & ~(1 << m_y);
trunk/src/emu/cpu/tms0980/tms0980.h
r242394r242395
55  TMS0980/TMS1000-family MCU cores
66
77*/
8
89#ifndef _TMS0980_H_
910#define _TMS0980_H_
1011
r242394r242395
1213#include "machine/pla.h"
1314
1415
15#define MCFG_TMS1XXX_OUTPUT_PLA(_pla) \
16   tms1xxx_cpu_device::set_output_pla(*device, _pla);
17
16// K input pins
1817#define MCFG_TMS1XXX_READ_K_CB(_devcb) \
1918   tms1xxx_cpu_device::set_read_k_callback(*device, DEVCB_##_devcb);
2019
20// O/Segment output pins
2121#define MCFG_TMS1XXX_WRITE_O_CB(_devcb) \
2222   tms1xxx_cpu_device::set_write_o_callback(*device, DEVCB_##_devcb);
2323
24// R output pins (also called D on some chips)
2425#define MCFG_TMS1XXX_WRITE_R_CB(_devcb) \
2526   tms1xxx_cpu_device::set_write_r_callback(*device, DEVCB_##_devcb);
2627
28// OFF opcode on TMS0980 and up
2729#define MCFG_TMS1XXX_POWER_OFF_CB(_devcb) \
2830   tms1xxx_cpu_device::set_power_off_callback(*device, DEVCB_##_devcb);
2931
32// Use this if the output PLA is unknown:
33// If the microinstructions (or other) PLA is unknown, try using one from another romset.
34#define MCFG_TMS1XXX_OUTPUT_PLA(_pla) \
35   tms1xxx_cpu_device::set_output_pla(*device, _pla);
3036
37
38
3139class tms1xxx_cpu_device : public cpu_device
3240{
3341public:
r242394r242395
6270   template<class _Object> static devcb_base &set_power_off_callback(device_t &device, _Object object) { return downcast<tms1xxx_cpu_device &>(device).m_power_off.set_callback(object); }
6371   static void set_output_pla(device_t &device, const UINT16 *output_pla) { downcast<tms1xxx_cpu_device &>(device).c_output_pla = output_pla; }
6472   
65   // driver debugging
66   UINT8 debug_peek_o_index() { return m_o_index; }
67
6873protected:
6974   // device-level overrides
7075   virtual void device_start();
r242394r242395
132137   UINT8   m_cs;        // chapter subroutine bit
133138   UINT16  m_r;
134139   UINT16  m_o;
135   UINT8   m_o_index;
136140   UINT8   m_cki_bus;
137141   UINT8   m_c4;
138142   UINT8   m_p;         // 4-bit adder p(lus)-input
r242394r242395
283287};
284288
285289
286class tmc0270_cpu_device : public tms0980_cpu_device
290class tms0270_cpu_device : public tms0980_cpu_device
287291{
288292public:
289   tmc0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
293   tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
290294
291295protected:
292296   // overrides
r242394r242395
322326extern const device_type TMS1300;
323327extern const device_type TMS0970;
324328extern const device_type TMS0980;
325extern const device_type TMC0270;
329extern const device_type TMS0270;
326330
327331
328332#endif /* _TMS0980_H_ */
trunk/src/mess/drivers/ampro.c
r242394r242395
181181   MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc_tick", ampro_state, ctc_tick, attotime::from_hz(XTAL_16MHz / 8))
182182   MCFG_WD1772x_ADD("fdc", XTAL_16MHz / 2)
183183   MCFG_FLOPPY_DRIVE_ADD("fdc:0", ampro_floppies, "525dd", floppy_image_device::default_floppy_formats)
184   MCFG_SOFTWARE_LIST_ADD("flop_list", "ampro")
184185MACHINE_CONFIG_END
185186
186187/* ROM definition */
trunk/src/mess/drivers/mathmagi.c
r242394r242395
2222
2323
2424  TODO:
25  - some of the led symbols are probably wrong, output pla is unknown
25  - some of the led symbols are probably wrong, output PLA is unknown
26  - microinstructions PLA is not verified
2627 
2728***************************************************************************/
2829
r242394r242395
8384WRITE16_MEMBER(mathmagi_state::write_o)
8485{
8586   // O1-O7: led segments A-G
87   // O0: N/C
8688   m_o = data;
8789}
8890
r242394r242395
162164   PORT_CONFNAME( 0x01, 0x00, "Players")
163165   PORT_CONFSETTING(    0x00, "1" )
164166   PORT_CONFSETTING(    0x01, "2" )
165   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
167   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
168   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
169   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
166170INPUT_PORTS_END
167171
168172
r242394r242395
196200
197201static const UINT16 mathmagi_output_pla[0x20] =
198202{
199   /* O output PLA configuration currently unknown */
200203   lA+lB+lC+lD+lE+lF,      // 0
201204   lB+lC,                  // 1
202205   lA+lB+lG+lE+lD,         // 2
trunk/src/mess/drivers/pc9801.c
r242394r242395
13511351   {
13521352      src = src_tmp << (dst_off - src_off);
13531353      src |= m_egc.leftover[plane];
1354      m_egc.leftover[plane] = src_tmp >> (15 - (dst_off - src_off));
1354      m_egc.leftover[plane] = src_tmp >> (16 - (dst_off - src_off));
13551355   }
13561356   else
13571357   {
13581358      src = src_tmp >> (src_off - dst_off);
13591359      src |= m_egc.leftover[plane];
1360      m_egc.leftover[plane] = src_tmp << (15 - (src_off - dst_off));
1360      m_egc.leftover[plane] = src_tmp << (16 - (src_off - dst_off));
13611361   }
13621362
13631363   for(int i = 7; i >= 0; i--)
r242394r242395
13801380
13811381   if((((m_egc.regs[2] >> 11) & 3) == 1) || ((((m_egc.regs[2] >> 11) & 3) == 2) && !BIT(m_egc.regs[2], 10)))
13821382   {
1383      // mask off the bits past the end of the blit
1384      if(m_egc.count < 16)
1385         mask &= dir ? ((1 << m_egc.count) - 1) : ~((1 << (16 - m_egc.count)) - 1);
1386
1383      UINT16 end_mask = 0xffff, start_mask = 0xffff;
13871384      // mask off the bits before the start
13881385      if(m_egc.first)
13891386      {
13901387         m_egc.leftover[0] = m_egc.leftover[1] = m_egc.leftover[2] = m_egc.leftover[3] = 0;
1391         mask &= dir ? ~((1 << dst_off) - 1) : ((1 << (16 - dst_off)) - 1);
1388         start_mask = dir ? ~((1 << dst_off) - 1) : ((1 << (15 - dst_off)) - 1);
13921389      }
1390
1391      // mask off the bits past the end of the blit
1392      if(m_egc.count < 16)
1393      {
1394         end_mask = dir ? ((1 << m_egc.count) - 1) : ~((1 << (16 - m_egc.count)) - 1);
1395         // if the blit is less than 16 bits, adjust the masks
1396         if(start_mask != 0xffff)
1397         {
1398            if(dir)
1399               end_mask <<= dst_off;
1400            else
1401               end_mask >>= (15 - dst_off);
1402         }
1403      }
1404      mask &= end_mask & start_mask;
13931405   }
13941406
13951407   for(int i = 0; i < 4; i++)
trunk/src/mess/drivers/tandy12.c
r242394r242395
22// copyright-holders:hap
33/***************************************************************************
44
5  Tandy Radio Shack Tandy-12 - Computerized Arcade
5  Tandy Radio Shack Computerized Arcade (1981, 1982, 1995)
66  * TMS1100 CD7282SL
77 
8  This tabletop game looks and plays like "Fabulous Fred" by the Japanese
9  company Mego Corp. in 1980, which in turn is a mix of Merlin and Simon.
10  Unlike Merlin and Simon, these spin-offs were not successful.
8  This handheld contains 12 minigames. It looks and plays like "Fabulous Fred"
9  by the Japanese company Mego Corp. in 1980, which in turn is a mix of Merlin
10  and Simon. Unlike Merlin and Simon, spin-offs like these were not successful.
11  There were releases with and without the prefix "Tandy-12", I don't know
12  which name was more common. Also not worth noting is that it needed five
13  batteries; 4 C-cells and a 9-volt.
1114 
15  Some of the games require accessories included with the toy (eg. the Baseball
16  game is played with a board representing the playing field). To start a game,
17  hold the [SELECT] button, then press [START] when the game button lights up.
18  As always, refer to the official manual for more information.
19 
20  See below at the input defs for a list of the games.
21
22 
23  TODO:
24  - output PLA is not verified
25  - microinstructions PLA is not verified
26
1227***************************************************************************/
1328
1429#include "emu.h"
r242394r242395
2843   tandy12_state(const machine_config &mconfig, device_type type, const char *tag)
2944      : driver_device(mconfig, type, tag),
3045      m_maincpu(*this, "maincpu"),
46      m_button_matrix(*this, "IN"),
3147      m_speaker(*this, "speaker")
3248   { }
3349
3450   required_device<tms1xxx_cpu_device> m_maincpu;
51   required_ioport_array<5> m_button_matrix;
3552   required_device<speaker_sound_device> m_speaker;
3653
37   UINT16 m_o;
3854   UINT16 m_r;
3955
4056   DECLARE_READ8_MEMBER(read_k);
r242394r242395
5369
5470READ8_MEMBER(tandy12_state::read_k)
5571{
56   return 0;
72   UINT8 k = 0;
73   
74   // read selected button rows
75   for (int i = 0; i < 5; i++)
76      if (m_r >> (i+5) & 1)
77         k |= m_button_matrix[i]->read();
78
79   return k;
5780}
5881
5982WRITE16_MEMBER(tandy12_state::write_o)
6083{
61   m_o = data;
84   // O0-O7: button lamps 1-8
85   for (int i = 0; i < 8; i++)
86      output_set_lamp_value(i, data >> i & 1);
6287}
6388
6489WRITE16_MEMBER(tandy12_state::write_r)
6590{
91   // R0-R3: button lamps 9-12
92   for (int i = 0; i < 4; i++)
93      output_set_lamp_value(i + 8, data >> i & 1);
94
6695   // R10: speaker out
6796   m_speaker->level_w(data >> 10 & 1);
68   
97
98   // R5-R9: input mux
6999   m_r = data;
70100}
71101
r242394r242395
77107
78108***************************************************************************/
79109
110/* physical button layout and labels is like this:
111
112        REPEAT-2              SPACE-2
113          [O]     OFF--ON       [O]
114
115    [purple]1     [blue]5       [l-green]9
116    ORGAN         TAG-IT        TREASURE HUNT
117   
118    [l-orange]2   [turquoise]6  [red]10
119    SONG WRITER   ROULETTE      COMPETE
120   
121    [pink]3       [yellow]7     [violet]11
122    REPEAT        BASEBALL      FIRE AWAY
123
124    [green]4      [orange]8     [brown]12
125    TORPEDO       REPEAT PLUS   HIDE 'N SEEK
126
127          [O]        [O]        [O]
128         START      SELECT    PLAY-2/HIT-7
129*/
130
80131static INPUT_PORTS_START( tandy12 )
132   PORT_START("IN.0") // R5
133   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("12")
134   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("11")
135   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("10")
136   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
137
138   PORT_START("IN.1") // R6
139   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("Space-2")
140   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("Play-2/Hit-7")
141   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_NAME("Select")
142   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Start")
143
144   PORT_START("IN.2") // R7
145   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME("Repeat-2")
146   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
147   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
148   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
149
150   PORT_START("IN.3") // R8
151   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
152   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
153   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
154   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
155
156   PORT_START("IN.4") // R9
157   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
158   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
159   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
160   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
81161INPUT_PORTS_END
82162
83163
r242394r242395
90170
91171void tandy12_state::machine_start()
92172{
93   m_o = 0;
94173   m_r = 0;
95
96   save_item(NAME(m_o));
97174   save_item(NAME(m_r));
98175}
99176
100177
101178static const UINT16 tandy12_output_pla[0x20] =
102179{
103   /* O output PLA configuration currently unknown */
104   0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
105   0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
106   0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
107   0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
180   // these are certain
181   0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,
182   0x80, 0x00, 0x00, 0x00, 0x00,
183   
184   // rest is unused?
185   0x00, 0x00, 0x00,
186   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
108188};
109189
110190
r242394r242395
146226ROM_END
147227
148228
149CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12 - Computerized Arcade", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
229CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12 - Computerized Arcade", GAME_SUPPORTS_SAVE )
trunk/src/mess/layout/tandy12.lay
r242394r242395
22<mamelayout version="2">
33
44
5<!-- ugly layout is temp, will be improved soon -->
6
7
8
9
510<!-- define elements -->
611
12   <element name="lamp_dot" defstate="0">
13      <disk state="1"><color red="1.0" green="0.3" blue="0.2" /></disk>
14      <disk state="0"><color red="0.125490" green="0.035294" blue="0.0235294" /></disk>
15   </element>
716
817
18
919<!-- build screen -->
1020
1121   <view name="Internal Layout">
1222      <bounds left="0" right="100" top="0" bottom="100" />
1323
24      <bezel name="lamp0" element="lamp_dot"><bounds x="10" y="10" width="5" height="5" /></bezel>
25      <bezel name="lamp4" element="lamp_dot"><bounds x="20" y="10" width="5" height="5" /></bezel>
26      <bezel name="lamp8" element="lamp_dot"><bounds x="30" y="10" width="5" height="5" /></bezel>
1427
28      <bezel name="lamp1" element="lamp_dot"><bounds x="10" y="20" width="5" height="5" /></bezel>
29      <bezel name="lamp5" element="lamp_dot"><bounds x="20" y="20" width="5" height="5" /></bezel>
30      <bezel name="lamp9" element="lamp_dot"><bounds x="30" y="20" width="5" height="5" /></bezel>
31
32      <bezel name="lamp2" element="lamp_dot"><bounds x="10" y="30" width="5" height="5" /></bezel>
33      <bezel name="lamp6" element="lamp_dot"><bounds x="20" y="30" width="5" height="5" /></bezel>
34      <bezel name="lamp10" element="lamp_dot"><bounds x="30" y="30" width="5" height="5" /></bezel>
35
36      <bezel name="lamp3" element="lamp_dot"><bounds x="10" y="40" width="5" height="5" /></bezel>
37      <bezel name="lamp7" element="lamp_dot"><bounds x="20" y="40" width="5" height="5" /></bezel>
38      <bezel name="lamp11" element="lamp_dot"><bounds x="30" y="40" width="5" height="5" /></bezel>
39
40
1541   </view>
1642</mamelayout>


Previous 199869 Revisions Next


© 1997-2024 The MAME Team