Previous 199869 Revisions Next

r35006 Thursday 12th February, 2015 at 19:02:54 UTC by Couriersud
Use user_settings from render_container. (nw)
[/trunk]makefile
[src/build]build.mak makelist.c* makelist.py verinfo.c* verinfo.py
[src/emu]audit.c fileio.c fileio.h
[src/emu/cpu/amis2000]amis2000.h amis2000op.inc
[src/emu/cpu/ucom4]ucom4.c ucom4.h ucom4op.inc
[src/mame]mame.lst
[src/mame/drivers]alg.c chaknpop.c champbas.c equites.c igs_m027.c shougi.c
[src/mame/includes]chaknpop.h
[src/mame/machine]chaknpop.c pgmcrypt.c pgmcrypt.h
[src/mame/video]chaknpop.c
[src/mess/drivers]advision.c alnchase.c mbee.c tmtennis.c wildfire.c
[src/mess/includes]mbee.h
[src/mess/layout]alnchase.lay edracula.lay tmtennis.lay wildfire.lay
[src/mess/machine]mbee.c
[src/mess/osd/windows]windows.mak
[src/mess/video]mbee.c
[src/osd/sdl]draw13.c drawogl.c
[src/osd/windows]windows.mak
[src/ume/osd/windows]windows.mak

trunk/makefile
r243517r243518
10121012   @$(CPPCHECK) $(CPPCHECKFLAGS) $<
10131013endif
10141014
1015$(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(SRC)/build/makelist.py
1015$(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(MAKELIST_TARGET)
10161016   @echo Building driver list $<...
1017   $(PYTHON) $(SRC)/build/makelist.py $< >$@
1017   @$(MAKELIST) $< >$@
10181018
10191019ifeq ($(TARGETOS),emscripten)
10201020# Avoid using .a files with Emscripten, link to bitcode instead
trunk/src/build/build.mak
r243517r243518
2020
2121MAKEDEP_TARGET = $(BUILDOUT)/makedep$(BUILD_EXE)
2222MAKEMAK_TARGET = $(BUILDOUT)/makemak$(BUILD_EXE)
23MAKELIST_TARGET = $(BUILDOUT)/makelist$(BUILD_EXE)
24VERINFO_TARGET = $(BUILDOUT)/verinfo$(BUILD_EXE)
2325
2426MAKEDEP = $(MAKEDEP_TARGET)
2527MAKEMAK = $(MAKEMAK_TARGET)
28MAKELIST = $(MAKELIST_TARGET)
29VERINFO = $(VERINFO_TARGET)
2630
2731ifneq ($(TERM),cygwin)
2832ifeq ($(OS),Windows_NT)
2933MAKEDEP = $(subst /,\,$(MAKEDEP_TARGET))
3034MAKEMAK = $(subst /,\,$(MAKEMAK_TARGET))
35MAKELIST = $(subst /,\,$(MAKELIST_TARGET))
36VERINFO = $(subst /,\,$(VERINFO_TARGET))
3137endif
3238endif
3339
r243517r243518
3541BUILD += \
3642   $(MAKEDEP_TARGET) \
3743   $(MAKEMAK_TARGET) \
44   $(MAKELIST_TARGET) \
45   $(VERINFO_TARGET) \
3846
3947
4048
r243517r243518
7482   $(LD) $(LDFLAGS) $^ $(BASELIBS) -o $@
7583
7684
85
86#-------------------------------------------------
87# makelist
88#-------------------------------------------------
89
90MAKELISTOBJS = \
91   $(BUILDOBJ)/makelist.o \
92   $(OBJ)/lib/util/astring.o \
93   $(OBJ)/lib/util/corealloc.o \
94   $(OBJ)/lib/util/cstrpool.o \
95   $(OBJ)/lib/util/corefile.o \
96   $(OBJ)/lib/util/unicode.o \
97   $(OBJ)/lib/util/tagmap.o \
98
99$(MAKELIST_TARGET): $(MAKELISTOBJS) $(LIBOCORE) $(ZLIB)
100   @echo Linking $@...
101   $(LD) $(LDFLAGS) $^ $(BASELIBS) -o $@
102
103
104
105#-------------------------------------------------
106# verinfo
107#-------------------------------------------------
108
109VERINFOOBJS = \
110   $(BUILDOBJ)/verinfo.o
111
112$(VERINFO_TARGET): $(VERINFOOBJS) $(LIBOCORE)
113   @echo Linking $@...
114   $(LD) $(LDFLAGS) $^ $(BASELIBS) -o $@
115
77116else
78117#-------------------------------------------------
79118# It's a CROSS_BUILD. Ensure the targets exist.
r243517r243518
81120$(MAKEDEP_TARGET):
82121   @echo $@ should be built natively. Nothing to do.
83122
123$(MAKELIST_TARGET):
124   @echo $@ should be built natively. Nothing to do.
125
126$(VERINFO_TARGET):
127   @echo $@ should be built natively. Nothing to do.
128
84129endif # CROSS_BUILD
trunk/src/build/makelist.c
r0r243518
1// license:BSD-3-Clause
2// copyright-holders:Aaron Giles
3/***************************************************************************
4
5    makelist.c
6
7    Create and sort the driver list.
8
9***************************************************************************/
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <ctype.h>
14#include "corefile.h"
15#include "cstrpool.h"
16
17
18static dynamic_array<const char *> drivlist;
19static dynamic_array<const char *> ignorelst;
20static const_string_pool string_pool;
21
22
23//-------------------------------------------------
24//  driver_sort_callback - compare two items in
25//  a string array
26//-------------------------------------------------
27
28int sort_callback(const void *elem1, const void *elem2)
29{
30   const char **item1 = (const char **)elem1;
31   const char **item2 = (const char **)elem2;
32   return strcmp(*item1, *item2);
33}
34
35//-------------------------------------------------
36//  isignored - return info if item is in ignore
37//  list or not
38//-------------------------------------------------
39
40bool isignored(const char *drivname)
41{
42   for (int i = 0; i < ignorelst.count(); i++)
43      if (strcmp(ignorelst[i], drivname) == 0)
44         return true;
45   return false;
46}
47
48//-------------------------------------------------
49//  parse_file - parse a single file, may be
50//  called recursively
51//-------------------------------------------------
52
53int parse_file(const char *srcfile)
54{
55   // read source file
56   dynamic_buffer buffer;
57   file_error filerr = core_fload(srcfile, buffer);
58   if (filerr != FILERR_NONE)
59   {
60      fprintf(stderr, "Unable to read source file '%s'\n", srcfile);
61      return 1;
62   }
63
64   // rip through it to find all drivers
65   char *srcptr = (char *)&buffer[0];
66   char *endptr = srcptr + buffer.count();
67   int linenum = 1;
68   bool in_comment = false;
69   while (srcptr < endptr)
70   {
71      char c = *srcptr++;
72
73      // count newlines
74      if (c == 13 || c == 10)
75      {
76         if (c == 13 && *srcptr == 10)
77            srcptr++;
78         linenum++;
79         continue;
80      }
81
82      // skip any spaces
83      if (isspace(c))
84         continue;
85
86      // look for end of C comment
87      if (in_comment && c == '*' && *srcptr == '/')
88      {
89         srcptr++;
90         in_comment = false;
91         continue;
92      }
93
94      // skip anything else inside a C comment
95      if (in_comment)
96         continue;
97
98      // look for start of C comment
99      if (c == '/' && *srcptr == '*')
100      {
101         srcptr++;
102         in_comment = true;
103         continue;
104      }
105
106      // if we hit a C++ comment, scan to the end of line
107      if (c == '/' && *srcptr == '/')
108      {
109         while (srcptr < endptr && *srcptr != 13 && *srcptr != 10)
110            srcptr++;
111         continue;
112      }
113
114      // look for an import directive
115      if (c == '#')
116      {
117         char filename[256];
118         filename[0] = 0;
119         for (int pos = 0; srcptr < endptr && pos < ARRAY_LENGTH(filename) - 1 && !isspace(*srcptr); pos++)
120         {
121            filename[pos] = *srcptr++;
122            filename[pos+1] = 0;
123         }
124         fprintf(stderr, "Importing drivers from '%s'\n", filename);
125         parse_file(filename);
126         continue;
127      }
128      if (c == '!')
129      {
130         char drivname[256];
131         drivname[0] = 0;
132         for (int pos = 0; srcptr < endptr && pos < ARRAY_LENGTH(drivname) - 1 && !isspace(*srcptr); pos++)
133         {
134            drivname[pos] = *srcptr++;
135            drivname[pos+1] = 0;
136         }
137         fprintf(stderr, "Place driver '%s' to ignore list\n", drivname);
138         ignorelst.append(string_pool.add(drivname));
139         continue;
140      }
141
142      // otherwise treat as a driver name
143      char drivname[32];
144      drivname[0] = 0;
145      srcptr--;
146      for (int pos = 0; srcptr < endptr && pos < ARRAY_LENGTH(drivname) - 1 && !isspace(*srcptr); pos++)
147      {
148         drivname[pos] = *srcptr++;
149         drivname[pos+1] = 0;
150      }
151
152      // verify the name as valid
153      for (char *drivch = drivname; *drivch != 0; drivch++)
154      {
155         if ((*drivch >= 'a' && *drivch <= 'z') || (*drivch >= '0' && *drivch <= '9') || *drivch == '_')
156            continue;
157         fprintf(stderr, "%s:%d - Invalid character '%c' in driver \"%s\"\n", srcfile, linenum, *drivch, drivname);
158         return 1;
159      }
160
161      // add it to the list
162      if (!isignored(drivname))
163         drivlist.append(string_pool.add(drivname));
164   }
165
166   return 0;
167}
168
169
170//-------------------------------------------------
171//  main - primary entry point
172//-------------------------------------------------
173
174int main(int argc, char *argv[])
175{
176   // needs at least 1 argument
177   if (argc < 2)
178   {
179      fprintf(stderr,
180         "Usage:\n"
181         "  makelist <source.lst>\n"
182      );
183      return 0;
184   }
185
186   // extract arguments
187   const char *srcfile = argv[1];
188
189   // parse the root file, exit early upon failure
190   if (parse_file(srcfile))
191      return 1;
192
193   // output a count
194   if (drivlist.count() == 0)
195   {
196      fprintf(stderr, "No drivers found\n");
197      return 1;
198   }
199   fprintf(stderr, "%d drivers found\n", drivlist.count());
200
201   // add a reference to the ___empty driver
202   drivlist.append("___empty");
203
204   // sort the list
205   qsort(drivlist, drivlist.count(), sizeof(drivlist[0]), sort_callback);
206
207   // start with a header
208   printf("#include \"emu.h\"\n\n");
209   printf("#include \"drivenum.h\"\n\n");
210
211   // output the list of externs first
212   for (int index = 0; index < drivlist.count(); index++)
213      printf("GAME_EXTERN(%s);\n", drivlist[index]);
214   printf("\n");
215
216   // then output the array
217   printf("const game_driver * const driver_list::s_drivers_sorted[%d] =\n", drivlist.count());
218   printf("{\n");
219   for (int index = 0; index < drivlist.count(); index++)
220      printf("\t&GAME_NAME(%s)%s\n", drivlist[index], (index == drivlist.count() - 1) ? "" : ",");
221   printf("};\n");
222   printf("\n");
223
224   // also output a global count
225   printf("int driver_list::s_driver_count = %d;\n", drivlist.count());
226
227   return 0;
228}
trunk/src/build/makelist.py
r243517r243518
1#!/usr/bin/python
2
3from __future__ import with_statement
4
5import sys
6import os
7
8drivlist = []
9
10def parse_file(srcfile):
11    try:
12        fp = open(srcfile, 'rb')
13    except IOError:
14        print("Unable to open source file '%s'" % srcfile)
15        return 1
16    in_comment = 0
17    linenum = 0
18    for line in fp.readlines():
19        drivname = ''
20        linenum+=1
21        srcptr = 0
22        while srcptr < len(line):
23            c = line[srcptr]
24            srcptr+=1
25            if c==13 or c==10:
26                if c==13 and line[srcptr]==10:
27                    srcptr+=1
28                continue
29            if c==' ':
30                continue;
31            if in_comment==1 and c=='*' and line[srcptr]=='/' :
32                srcptr+=1
33                in_comment = 0;
34                continue
35            if (in_comment):
36                continue
37            if c=='/' and line[srcptr]=='*' :
38                srcptr+=1
39                in_comment = 1;
40                continue
41            if c=='/' and line[srcptr]=='/' :
42                break
43            drivname += c
44        drivname = drivname.strip()
45        if (len(drivname)>0):
46            if drivname[0]=='#':
47               sys.stderr.write("Importing drivers from '%s'\n" % drivname[1:])
48               parse_file(drivname[1:])
49               continue
50            if not all(((c >='a' and c<='z') or (c>='0' and c<='9') or c=='_') for c in drivname):
51               sys.stderr.write("%s:%d - Invalid character in driver \"%s\"\n" % (srcfile,  linenum,  drivname))
52               return 1
53            else:           
54               drivlist.append(drivname)
55    return 0
56
57
58if (len(sys.argv) < 2) :
59    print('Usage:')
60    print('  makelist <source.lst>')
61    sys.exit(0)
62
63if (parse_file(sys.argv[1])) :
64    sys.exit(1)
65
66# output a count
67if (len(drivlist)==0) :
68    sys.stderr.write("No drivers found\n")
69    sys.exit(1)
70
71sys.stderr.write("%d drivers found\n" % len(drivlist))
72
73# add a reference to the ___empty driver
74drivlist.append("___empty")
75
76# start with a header
77print('#include "emu.h"\n');
78print('#include "drivenum.h"\n');
79
80#output the list of externs first
81for drv in sorted(drivlist):
82   print("GAME_EXTERN(%s);" % drv)
83print("")
84
85# then output the array
86print("const game_driver * const driver_list::s_drivers_sorted[%d] =" % len(drivlist))
87print("{")
88for drv in sorted(drivlist):
89   print("\t&GAME_NAME(%s)," % drv)
90print("};");
91print("");
92
93# also output a global count
94print("int driver_list::s_driver_count = %d;\n" % len(drivlist))
trunk/src/build/verinfo.c
r0r243518
1//============================================================
2//
3//  verinfo.c - Version resource emitter code
4//
5//  Copyright Nicola Salmoria and the MAME Team.
6//  Visit http://mamedev.org for licensing and usage restrictions.
7//
8//============================================================
9
10#include <stdio.h>
11#include <ctype.h>
12
13#include <string.h>
14#include <stdlib.h>
15
16typedef unsigned char UINT8;
17
18#define ARRAY_LENGTH(x)     (sizeof(x) / sizeof(x[0]))
19#define BUILD_MAME      (0)
20#define BUILD_MESS          (1)
21#define BUILD_UME           (2)
22
23//============================================================
24//  TYPE DEFINITIONS
25//============================================================
26
27struct version_info
28{
29   int version_major;
30   int version_minor;
31   int version_build;
32   int version_subbuild;
33   const char *version_string;
34   const char *author;
35   const char *comments;
36   const char *company_name;
37   const char *file_description;
38   const char *internal_name;
39   const char *legal_copyright;
40   const char *original_filename;
41   const char *product_name;
42};
43
44
45
46//============================================================
47// STATIC
48//============================================================
49
50static int build;
51
52
53//============================================================
54//  emit_version_info
55//============================================================
56
57static void emit_version_info(const version_info *v)
58{
59   printf("VS_VERSION_INFO VERSIONINFO\n");
60   printf("\tFILEVERSION %d,%d,%d,%d\n", v->version_major, v->version_minor, v->version_build, v->version_subbuild);
61   printf("\tPRODUCTVERSION %d,%d,%d,%d\n", v->version_major, v->version_minor, v->version_build, v->version_subbuild);
62   printf("\tFILEFLAGSMASK 0x3fL\n");
63#ifdef MAME_DEBUG
64   if (v->version_build == 0)
65      printf("\tFILEFLAGS VS_FF_DEBUG\n");
66   else
67      printf("\tFILEFLAGS VS_FF_PRERELEASE | VS_FF_DEBUG\n");
68#else
69   if (v->version_build == 0)
70      printf("\tFILEFLAGS 0x0L\n");
71   else
72      printf("\tFILEFLAGS VS_FF_PRERELEASE\n");
73#endif
74   printf("\tFILEOS VOS_NT_WINDOWS32\n");
75   printf("\tFILETYPE VFT_APP\n");
76   printf("\tFILESUBTYPE VFT2_UNKNOWN\n");
77   printf("BEGIN\n");
78   printf("\tBLOCK \"StringFileInfo\"\n");
79   printf("\tBEGIN\n");
80   printf("#ifdef UNICODE\n");
81   printf("\t\tBLOCK \"040904b0\"\n");
82   printf("#else\n");
83   printf("\t\tBLOCK \"040904E4\"\n");
84   printf("#endif\n");
85   printf("\t\tBEGIN\n");
86   if (v->author != NULL)
87      printf("\t\t\tVALUE \"Author\", \"%s\\0\"\n", v->author);
88   if (v->comments != NULL)
89      printf("\t\t\tVALUE \"Comments\", \"%s\\0\"\n", v->comments);
90   if (v->company_name != NULL)
91      printf("\t\t\tVALUE \"CompanyName\", \"%s\\0\"\n", v->company_name);
92   if (v->file_description != NULL)
93      printf("\t\t\tVALUE \"FileDescription\", \"%s\\0\"\n", v->file_description);
94   printf("\t\t\tVALUE \"FileVersion\", \"%d, %d, %d, %d\\0\"\n", v->version_major, v->version_minor, v->version_build, v->version_subbuild);
95   if (v->internal_name != NULL)
96      printf("\t\t\tVALUE \"InternalName\", \"%s\\0\"\n", v->internal_name);
97   if (v->legal_copyright != NULL)
98      printf("\t\t\tVALUE \"LegalCopyright\", \"%s\\0\"\n", v->legal_copyright);
99   if (v->original_filename != NULL)
100      printf("\t\t\tVALUE \"OriginalFilename\", \"%s\\0\"\n", v->original_filename);
101   if (v->product_name != NULL)
102      printf("\t\t\tVALUE \"ProductName\", \"%s\\0\"\n", v->product_name);
103   printf("\t\t\tVALUE \"ProductVersion\", \"%s\\0\"\n", v->version_string);
104   printf("\t\tEND\n");
105   printf("\tEND\n");
106   printf("\tBLOCK \"VarFileInfo\"\n");
107   printf("\tBEGIN\n");
108   printf("#ifdef UNICODE\n");
109   printf("\t\tVALUE \"Translation\", 0x409, 1200\n");
110   printf("#else\n");
111   printf("\t\tVALUE \"Translation\", 0x409, 1252\n");
112   printf("#endif\n");
113   printf("\tEND\n");
114   printf("END\n");
115}
116
117
118
119//============================================================
120//  parse_version_digit
121//============================================================
122
123static bool parse_version_digit(const char *str, int *position, int* value)
124{
125   int res = 0;
126
127   while (str[*position] != 0 && !isspace((UINT8)str[*position]) && !isdigit((UINT8)str[*position]))
128      (*position)++;
129
130   if (str[*position] != 0 && isdigit((UINT8)str[*position]))
131   {
132      res = sscanf(&str[*position], "%d", value);
133      while (isdigit((UINT8)str[*position]))
134         (*position)++;
135   }
136   return res == 1;
137}
138
139
140
141//============================================================
142//  parse_version
143//============================================================
144
145static int parse_version(char *str, int *version_major, int *version_minor, const char **version_string)
146{
147   char *version;
148   int position = 0;
149
150   // find the version string
151   version = strstr(str, "BARE_BUILD_VERSION");
152   if (version != NULL)
153      version = strchr(version, '"');
154   if (version == NULL || *version == '\0' || strchr(version, '.') == NULL)
155   {
156      fprintf(stderr, "Unable to find version string\n");
157      return 1;
158   }
159   version++;
160   *strchr(version, '"') = 0;
161
162   *version_string = version;
163   if (!parse_version_digit(version, &position, version_major))
164   {
165      fprintf(stderr, "Unable to parse major version\n");
166      return 1;
167   }
168   if (!parse_version_digit(version, &position, version_minor))
169   {
170      fprintf(stderr, "Unable to parse minor version\n");
171      return 1;
172   }
173   return 0;
174}
175
176
177
178//============================================================
179//  main
180//============================================================
181static int usage(char *me)
182{
183   fprintf(stderr, "Usage: %s [-b mame|mess|ume] <filename>\n", me);
184   return 1;
185}
186
187
188//============================================================
189//  main
190//============================================================
191
192int main(int argc, char *argv[])
193{
194   version_info v;
195   char legal_copyright[512];
196   char *buffer;
197   size_t size;
198   int opt;
199   FILE *f;
200
201   memset(&v, 0, sizeof(v));
202   build = BUILD_MAME;
203
204   // validate parameters
205   opt = 1;
206   while (opt < argc && *argv[opt] == '-')
207   {
208      if (!strcmp(argv[opt], "-b"))
209      {
210         char *p = argv[++opt];
211         if (!strcmp(p,"mame"))
212            build = BUILD_MAME;
213         else if (!strcmp(p,"mess"))
214            build = BUILD_MESS;
215         else if (!strcmp(p,"ume"))
216            build = BUILD_UME;
217         else
218            return usage(argv[0]);
219      }
220      else
221         return usage(argv[0]);
222      opt++;
223   }
224
225   if (opt != argc-1 )
226   {
227      return usage(argv[0]);
228   }
229
230   // open the file
231   f = fopen(argv[argc-1], "rb");
232   if (f == NULL)
233   {
234      fprintf(stderr, "Error opening file %s\n", argv[argc-1]);
235      return 1;
236   }
237
238   // get the file size
239   fseek(f, 0, SEEK_END);
240   size = ftell(f);
241   fseek(f, 0, SEEK_SET);
242
243   // allocate a buffer
244   buffer = (char *)malloc(size + 1);
245   if (buffer == NULL)
246   {
247      fclose(f);
248      fprintf(stderr, "Error allocating %ld bytes\n", (long) size + 1);
249      return 1;
250   }
251
252   // read the file contents and NULL-terminate
253   fread(buffer, 1, size, f);
254   fclose(f);
255   buffer[size] = 0;
256
257   // parse out version string
258   if (parse_version(buffer, &v.version_major, &v.version_minor, &v.version_string))
259   {
260      fprintf(stderr, "Error parsing version\n");
261      free(buffer);
262      return 1;
263   }
264
265   if (build == BUILD_MESS)
266   {
267      // MESS
268      v.author = "MESS Team";
269      v.comments = "Multi Emulation Super System";
270      v.company_name = "MESS Team";
271      v.file_description = "Multi Emulation Super System";
272      v.internal_name = "MESS";
273      v.original_filename = "MESS";
274      v.product_name = "MESS";
275   }
276   else if (build == BUILD_UME)
277   {
278      // UME
279      v.author = "MAME and MESS Team";
280      v.comments = "Universal Machine Emulator";
281      v.company_name = "MAME and MESS Team";
282      v.file_description = "Universal Machine Emulator";
283      v.internal_name = "UME";
284      v.original_filename = "UME";
285      v.product_name = "UME";
286   }
287   else
288   {
289      // MAME
290      v.author = "Nicola Salmoria and the MAME Team";
291      v.comments = "Multiple Arcade Machine Emulator";
292      v.company_name = "MAME Team";
293      v.file_description = "Multiple Arcade Machine Emulator";
294      v.internal_name = "MAME";
295      v.original_filename = "MAME";
296      v.product_name = "MAME";
297   }
298
299   // build legal_copyright string
300   v.legal_copyright = legal_copyright;
301   snprintf(legal_copyright, ARRAY_LENGTH(legal_copyright), "Copyright Nicola Salmoria and the MAME team");
302
303   // emit the info
304   emit_version_info(&v);
305
306   free(buffer);
307   return 0;
308}
trunk/src/build/verinfo.py
r243517r243518
1#!/usr/bin/python
2
3from __future__ import with_statement
4
5import sys
6import os
7
8def usage():
9    sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] <filename>\n')
10    return 0
11   
12build = "mame"
13
14if (len(sys.argv)==1):
15   usage()
16   sys.exit(1)
17
18if (sys.argv[1]=='-b'):
19    if (sys.argv[2]=='mame'):
20        build = "mame"
21    elif (sys.argv[2]=='mess'):
22        build = "mess"
23    elif (sys.argv[2]=='ume'):
24        build = "ume"
25    else :
26      usage()
27      sys.exit(1)
28
29srcfile = sys.argv[len(sys.argv)-1]
30try:
31   fp = open(srcfile, 'rb')
32except IOError:
33   sys.stderr.write("Unable to open source file '%s'" % srcfile)
34   sys.exit(1)
35
36for line in fp.readlines():
37    if line.find("BARE_BUILD_VERSION")!=-1 and line.find('"')!=-1 and line.find('.')!=-1:
38        version_string = line[line.find('"')+1:]
39        version_string = version_string[0:version_string.find('"')]
40        break
41
42version_major = version_string[0:version_string.find('.')]
43version_minor = version_string[version_string.find('.')+1:]
44version_build = "0"
45version_subbuild = "0"
46if (build == "mess") :
47    # MESS
48    author = "MESS Team";
49    comments = "Multi Emulation Super System";
50    company_name = "MESS Team";
51    file_description = "Multi Emulation Super System";
52    internal_name = "MESS";
53    original_filename = "MESS";
54    product_name = "MESS";
55elif (build == "ume") :
56    # UME
57    author = "MAME and MESS Team"
58    comments = "Universal Machine Emulator"
59    company_name = "MAME and MESS Team"
60    file_description = "Universal Machine Emulator"
61    internal_name = "UME"
62    original_filename = "UME"
63    product_name = "UME"
64else :
65    # MAME
66    author = "Nicola Salmoria and the MAME Team"
67    comments = "Multiple Arcade Machine Emulator"
68    company_name = "MAME Team"
69    file_description = "Multiple Arcade Machine Emulator"
70    internal_name = "MAME"
71    original_filename = "MAME"
72    product_name = "MAME"
73
74legal_copyright = "Copyright Nicola Salmoria and the MAME team"
75
76print("VS_VERSION_INFO VERSIONINFO")
77print("\tFILEVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild))
78print("\tPRODUCTVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild))
79print("\tFILEFLAGSMASK 0x3fL")
80if (version_build == 0) :
81    print("\tFILEFLAGS 0x0L")
82else :
83    print("\tFILEFLAGS VS_FF_PRERELEASE")
84print("\tFILEOS VOS_NT_WINDOWS32")
85print("\tFILETYPE VFT_APP")
86print("\tFILESUBTYPE VFT2_UNKNOWN")
87print("BEGIN")
88print("\tBLOCK \"StringFileInfo\"")
89print("\tBEGIN")
90print("#ifdef UNICODE")
91print("\t\tBLOCK \"040904b0\"")
92print("#else")
93print("\t\tBLOCK \"040904E4\"")
94print("#endif")
95print("\t\tBEGIN")
96print("\t\t\tVALUE \"Author\", \"%s\\0\"" % author)
97print("\t\t\tVALUE \"Comments\", \"%s\\0\"" % comments)
98print("\t\t\tVALUE \"CompanyName\", \"%s\\0\"" % company_name)
99print("\t\t\tVALUE \"FileDescription\", \"%s\\0\"" % file_description)
100print("\t\t\tVALUE \"FileVersion\", \"%s, %s, %s, %s\\0\"" % (version_major, version_minor, version_build, version_subbuild))
101print("\t\t\tVALUE \"InternalName\", \"%s\\0\"" % internal_name)
102print("\t\t\tVALUE \"LegalCopyright\", \"%s\\0\"" % legal_copyright)
103print("\t\t\tVALUE \"OriginalFilename\", \"%s\\0\"" % original_filename)
104print("\t\t\tVALUE \"ProductName\", \"%s\\0\"" % product_name)
105print("\t\t\tVALUE \"ProductVersion\", \"%s\\0\"" % version_string)
106print("\t\tEND")
107print("\tEND")
108print("\tBLOCK \"VarFileInfo\"")
109print("\tBEGIN")
110print("#ifdef UNICODE")
111print("\t\tVALUE \"Translation\", 0x409, 1200")
112print("#else")
113print("\t\tVALUE \"Translation\", 0x409, 1252")
114print("#endif")
115print("\tEND")
116print("END")
No newline at end of file
trunk/src/emu/audit.c
r243517r243518
421421
422422   // find the file and checksum it, getting the file length along the way
423423   emu_file file(m_enumerator.options().media_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD);
424   file.set_restrict_to_mediapath(true);
425424   path_iterator path(m_searchpath);
426425   astring curpath;
427426   while (path.next(curpath, record.name()))
trunk/src/emu/cpu/amis2000/amis2000.h
r243517r243518
7777   UINT8 m_callstack_bits;     // number of program counter bits held in callstack
7878   UINT16 m_callstack_mask;
7979   UINT8 m_callstack_depth;    // callstack levels: 3 on 2000/2150, 5 on 2200/2400
80   UINT16 m_callstack[5];      // max 5
80   UINT16 m_callstack[5+1];    // max 5
8181   int m_icount;
8282   UINT16 m_pc;                // 13-bit program counter
8383   UINT8 m_ppr;                // prepared page register (PP 1)
trunk/src/emu/cpu/amis2000/amis2000op.inc
r243517r243518
1717void amis2000_device::pop_callstack()
1818{
1919   m_pc = (m_pc & ~m_callstack_mask) | (m_callstack[0] & m_callstack_mask);
20   for (int i = 0; i < m_callstack_depth-1; i++)
20   for (int i = 0; i < m_callstack_depth; i++)
21   {
2122      m_callstack[i] = m_callstack[i+1];
23      m_callstack[i+1] = 0;
24   }
2225}
2326
2427void amis2000_device::push_callstack()
trunk/src/emu/cpu/ucom4/ucom4.c
r243517r243518
1010  I've also looked at asterick's JavaScript D553 emulator for verification, with permission.
1111
1212  TODO:
13  - add external interrupt
1413  - what happens with uCOM-43 opcodes on an uCOM-44/45 MCU?
1514  - what's the data after the ROM data for? (eg. 2000-2047, official ROM size is 2000)
1615
r243517r243518
123122   m_datamask = (1 << m_datawidth) - 1;
124123   m_dph_mask = m_datamask >> 4;
125124
126   m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ucom4_cpu_device::simple_timer_cb), this));
127
128125   m_read_a.resolve_safe(0xf);
129126   m_read_b.resolve_safe(0xf);
130127   m_read_c.resolve_safe(0xf);
r243517r243518
190187
191188void ucom4_cpu_device::device_reset()
192189{
190   m_inte_f = 1;
193191   m_pc = 0;
194192   m_op = 0;
195193   m_skip = false;
196194
197   m_timer->adjust(attotime::never);
198
199195   // clear i/o
200196   for (int i = NEC_UCOM4_PORTC; i <= NEC_UCOM4_PORTI; i++)
201197      output_w(i, 0xf);
trunk/src/emu/cpu/ucom4/ucom4.h
r243517r243518
133133   int m_datamask;
134134   int m_family;           // MCU family (43/44/45)
135135   int m_stack_levels;     // number of callstack levels
136   UINT16 m_stack[3];      // max 3
136   UINT16 m_stack[3+1];    // max 3
137137   UINT8 m_port_out[0x10]; // last value written to output port
138138   UINT8 m_op;
139139   UINT8 m_prev_op;        // previous opcode
r243517r243518
141141   UINT8 m_bitmask;        // opcode bit argument
142142   bool m_skip;            // skip next opcode
143143   int m_icount;
144   emu_timer *m_timer;
145144   
146145   UINT16 m_pc;            // program counter
147146   UINT8 m_acc;            // 4-bit accumulator
r243517r243518
180179   void output_w(int index, UINT8 data);
181180
182181   bool check_op_43();
183   TIMER_CALLBACK_MEMBER( simple_timer_cb );
184182   UINT8 ucom43_reg_r(int index);
185183   void ucom43_reg_w(int index, UINT8 data);
186184
trunk/src/emu/cpu/ucom4/ucom4op.inc
r243517r243518
1717void ucom4_cpu_device::pop_stack()
1818{
1919   m_pc = m_stack[0] & m_prgmask;
20   for (int i = 0; i < m_stack_levels-1; i++)
20   for (int i = 0; i < m_stack_levels; i++)
21   {
2122      m_stack[i] = m_stack[i+1];
23      m_stack[i+1] = 0;
24   }
2225}
2326
2427void ucom4_cpu_device::push_stack()
r243517r243518
426429void ucom4_cpu_device::op_tit()
427430{
428431   // TIT: skip next on Interrupt F/F, reset Interrupt F/F
429   m_skip = (m_int_f != 0);
430   m_int_f = 0;
432   op_illegal();
431433}
432434
433435
r243517r243518
487489   return (m_family == NEC_UCOM43);
488490}
489491
490TIMER_CALLBACK_MEMBER( ucom4_cpu_device::simple_timer_cb )
491{
492   m_timer_f = 1;
493}
494
495492// extra registers reside in RAM
496493enum
497494{
r243517r243518
515512}
516513
517514
518
519515// Transfer
520516
521517void ucom4_cpu_device::op_taw()
r243517r243518
716712   if (!check_op_43()) return;
717713   
718714   // STM X: Reset Timer F/F, Start Timer with X
719   m_timer_f = 0;
715   op_illegal();
720716
721   // on the default clockrate of 400kHz, the minimum time interval is
722   // 630usec and the maximum interval is 40320usec(630*64)
723   attotime base = attotime::from_hz(unscaled_clock() / 4 / 63);
724   m_timer->adjust(base * ((m_arg & 0x3f) + 1));
725
726717   if ((m_arg & 0xc0) != 0x80)
727718      logerror("%s STM opcode unexpected upper arg $%02X at $%03X\n", tag(), m_arg & 0xc0, m_pc);
728719}
r243517r243518
732723   if (!check_op_43()) return;
733724   
734725   // TTM: skip next on Timer F/F
735   m_skip = (m_timer_f != 0);
726   op_illegal();
736727}
737728
738729
r243517r243518
743734   if (!check_op_43()) return;
744735   
745736   // EI: Set Interrupt Enable F/F
746   m_inte_f = 1;
737   op_illegal();
747738}
748739
749740void ucom4_cpu_device::op_di()
r243517r243518
751742   if (!check_op_43()) return;
752743   
753744   // DI: Reset Interrupt Enable F/F
754   m_inte_f = 0;
745   op_illegal();
755746}
trunk/src/emu/fileio.c
r243517r243518
141141emu_file::emu_file(UINT32 openflags)
142142   : m_file(NULL),
143143      m_iterator(""),
144      m_mediapaths(""),
145144      m_crc(0),
146145      m_openflags(openflags),
147146      m_zipfile(NULL),
148147      m_ziplength(0),
149148      m__7zfile(NULL),
150149      m__7zlength(0),
151      m_remove_on_close(false),
152      m_restrict_to_mediapath(false)
150      m_remove_on_close(false)
153151{
154152   // sanity check the open flags
155153   if ((m_openflags & OPEN_FLAG_HAS_CRC) && (m_openflags & OPEN_FLAG_WRITE))
r243517r243518
159157emu_file::emu_file(const char *searchpath, UINT32 openflags)
160158   : m_file(NULL),
161159      m_iterator(searchpath),
162      m_mediapaths(searchpath),
163160      m_crc(0),
164161      m_openflags(openflags),
165162      m_zipfile(NULL),
166163      m_ziplength(0),
167164      m__7zfile(NULL),
168165      m__7zlength(0),
169      m_remove_on_close(false),
170      m_restrict_to_mediapath(false)
166      m_remove_on_close(false)
171167{
172168   // sanity check the open flags
173169   if ((m_openflags & OPEN_FLAG_HAS_CRC) && (m_openflags & OPEN_FLAG_WRITE))
r243517r243518
358354      {
359355         astring tempfullpath = m_fullpath;
360356
361         filerr = attempt_zipped();
357         filerr = attempt__7zped();
362358         if (filerr == FILERR_NONE)
363359            break;
364360
365361         m_fullpath = tempfullpath;
366362
367         filerr = attempt__7zped();
363         filerr = attempt_zipped();
368364         if (filerr == FILERR_NONE)
369365            break;
366
367
370368      }
371369   }
372370   return filerr;
r243517r243518
652650}
653651
654652
655//-------------------------------------------------
656//  part_of_mediapath - checks if 'path' is part of
657//  any media path
658//-------------------------------------------------
659653
660bool emu_file::part_of_mediapath(astring path)
661{
662   bool result = false;
663   astring mediapath;
664   m_mediapaths.reset();
665   while (m_mediapaths.next(mediapath, NULL) && !result)
666      if (path.cmpsubstr(mediapath, 0, mediapath.len()))
667         result = true;
668   return result;
669}
670
671654//-------------------------------------------------
672655//  attempt_zipped - attempt to open a ZIPped file
673656//-------------------------------------------------
r243517r243518
684667      if (dirsep == -1)
685668         return FILERR_NOT_FOUND;
686669
687      if (restrict_to_mediapath())
688         if ( !part_of_mediapath(m_fullpath) )
689            return FILERR_NOT_FOUND;
690
691670      // insert the part from the right of the separator into the head of the filename
692671      if (filename.len() > 0)
693672         filename.ins(0, "/");
r243517r243518
819798      if (dirsep == -1)
820799         return FILERR_NOT_FOUND;
821800
822      if (restrict_to_mediapath())
823         if ( !part_of_mediapath(m_fullpath) )
824            return FILERR_NOT_FOUND;
825
826801      // insert the part from the right of the separator into the head of the filename
827802      if (filename.len() > 0)
828803         filename.ins(0, "/");
trunk/src/emu/fileio.h
r243517r243518
9797   const char *fullpath() const { return m_fullpath; }
9898   UINT32 openflags() const { return m_openflags; }
9999   hash_collection &hashes(const char *types);
100   bool restrict_to_mediapath() { return m_restrict_to_mediapath; }
101   bool part_of_mediapath(astring path);
102100
103101   // setters
104102   void remove_on_close() { m_remove_on_close = true; }
105103   void set_openflags(UINT32 openflags) { assert(m_file == NULL); m_openflags = openflags; }
106   void set_restrict_to_mediapath(bool rtmp = true) { m_restrict_to_mediapath = rtmp; }
107104
108105   // open/close
109106   file_error open(const char *name);
r243517r243518
154151   astring         m_fullpath;                     // full filename
155152   core_file *     m_file;                         // core file pointer
156153   path_iterator   m_iterator;                     // iterator for paths
157   path_iterator   m_mediapaths;         // media-path iterator
158   UINT32          m_crc;                          // file's CRC
154   UINT32          m_crc;                          // iterator for paths
159155   UINT32          m_openflags;                    // flags we used for the open
160156   hash_collection m_hashes;                       // collection of hashes
161157
r243517r243518
168164   UINT64          m__7zlength;                    // 7Z file length
169165
170166   bool            m_remove_on_close;              // flag: remove the file when closing
171   bool      m_restrict_to_mediapath;   // flag: restrict to paths inside the media-path
172167};
173168
174169
trunk/src/mame/drivers/alg.c
r243517r243518
810810   /* works ok but uses right player (2) controls only for trigger and holster */
811811
812812/* NOVA games on ALG hardware with own address scramble */
813GAME( 199?, aplatoon, alg_bios, alg_r2,   alg, alg_state,    aplatoon, ROT0,  "Nova?", "Platoon V.3.1 US", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
813GAME( 199?, aplatoon, alg_bios, alg_r2,   alg, alg_state,    aplatoon, ROT0,  "Nova?", "Platoon V.?.? US", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
814814
815815/* Web Picmatic games PAL tv standard, own rom board */
816816GAME( 1993, zortonbr, alg_bios, picmatic, alg, alg_state,    pal,     ROT0,  "Web Picmatic", "Zorton Brothers (Los Justicieros)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
trunk/src/mame/drivers/chaknpop.c
r243517r243518
143143static ADDRESS_MAP_START( chaknpop_map, AS_PROGRAM, 8, chaknpop_state )
144144   AM_RANGE(0x0000, 0x7fff) AM_ROM
145145   AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("mcu_ram")
146   AM_RANGE(0x8800, 0x8800) AM_READWRITE(mcu_port_a_r, mcu_port_a_w)
147   AM_RANGE(0x8801, 0x8801) AM_READWRITE(mcu_port_b_r, mcu_port_b_w)
148   AM_RANGE(0x8802, 0x8802) AM_READWRITE(mcu_port_c_r, mcu_port_c_w)
146   AM_RANGE(0x8800, 0x8800) AM_READWRITE(chaknpop_mcu_port_a_r, chaknpop_mcu_port_a_w)
147   AM_RANGE(0x8801, 0x8801) AM_READWRITE(chaknpop_mcu_port_b_r, chaknpop_mcu_port_b_w)
148   AM_RANGE(0x8802, 0x8802) AM_READWRITE(chaknpop_mcu_port_c_r, chaknpop_mcu_port_c_w)
149149   AM_RANGE(0x8804, 0x8805) AM_DEVREADWRITE("ay1", ay8910_device, data_r, address_data_w)
150150   AM_RANGE(0x8806, 0x8807) AM_DEVREADWRITE("ay2", ay8910_device, data_r, address_data_w)
151151   AM_RANGE(0x8808, 0x8808) AM_READ_PORT("DSWC")
152152   AM_RANGE(0x8809, 0x8809) AM_READ_PORT("P1")
153153   AM_RANGE(0x880a, 0x880a) AM_READ_PORT("SYSTEM")
154154   AM_RANGE(0x880b, 0x880b) AM_READ_PORT("P2")
155   AM_RANGE(0x880c, 0x880c) AM_READWRITE(gfxmode_r, gfxmode_w)
155   AM_RANGE(0x880c, 0x880c) AM_READWRITE(chaknpop_gfxmode_r, chaknpop_gfxmode_w)
156156   AM_RANGE(0x880d, 0x880d) AM_WRITE(coinlock_w)                                               // coin lock out
157   AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(txram_w) AM_SHARE("tx_ram")          // TX tilemap
158   AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(attrram_w) AM_SHARE("attr_ram")      // Color attribute
157   AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(chaknpop_txram_w) AM_SHARE("tx_ram")          // TX tilemap
158   AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(chaknpop_attrram_w) AM_SHARE("attr_ram")      // Color attribute
159159   AM_RANGE(0x9840, 0x98ff) AM_RAM AM_SHARE("spr_ram") // sprite
160160   AM_RANGE(0xa000, 0xbfff) AM_ROM
161161   AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank1")                                                        // bitmap plane 1-4
r243517r243518
362362   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
363363   MCFG_SCREEN_SIZE(32*8, 32*8)
364364   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
365   MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update)
365   MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop)
366366   MCFG_SCREEN_PALETTE("palette")
367367
368368   MCFG_GFXDECODE_ADD("gfxdecode", "palette", chaknpop)
r243517r243518
416416
417417
418418/*  ( YEAR  NAME      PARENT    MACHINE   INPUT     INIT      MONITOR  COMPANY              FULLNAME ) */
419GAME( 1983, chaknpop, 0,        chaknpop, chaknpop, driver_device, 0,        ROT0,    "Taito Corporation", "Chack'n Pop", GAME_SUPPORTS_SAVE )
419GAME( 1983, chaknpop, 0,        chaknpop, chaknpop, driver_device, 0,        ROT0,    "Taito Corporation", "Chack'n Pop", 0 )
trunk/src/mame/drivers/champbas.c
r243517r243518
801801   ROM_LOAD( "16.11i", 0x5000, 0x1000, CRC(1612adf5) SHA1(9adeb21d5d1692f6e31460062f03f2008076b307) )
802802
803803   ROM_REGION( 0x2000, "mcu", 0 )
804   ROM_LOAD( "alpha-8201__44801a75__2f25.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
804   ROM_LOAD( "8201.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
805805
806806   ROM_REGION( 0x1000, "gfx1", 0 ) // chars
807807   ROM_LOAD( "7.6a", 0x0000, 0x1000, CRC(bde14194) SHA1(f8f569342a3094eb5450a30b8ab87901b98e6061) )
r243517r243518
848848   ROM_LOAD( "18.2n", 0x4000, 0x2000, CRC(2dc484dd) SHA1(28bd68c787d7e6989849ca52009948dbd5cdcc79) )
849849
850850   ROM_REGION( 0x2000, "mcu", 0 )
851   ROM_LOAD( "alpha-8201__44801a75__2f25.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
851   ROM_LOAD( "8201.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
852852
853853   ROM_REGION( 0x2000, "gfx1", 0 ) // chars + sprites: rearranged by DRIVER_INIT to leave only chars
854854   ROM_LOAD( "14.5e", 0x0000, 0x2000, CRC(1b8202b3) SHA1(889b77fc3d0cb029baf8c47be260f513f3ed59bd) )
r243517r243518
897897
898898   // the pcb has a 8302 on it, though only the 8201 instructions are used
899899   ROM_REGION( 0x2000, "mcu", 0 )
900   ROM_LOAD( "alpha-8302__44801b35.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
900   ROM_LOAD( "8302.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
901901
902902   ROM_REGION( 0x2000, "gfx1", 0 ) // chars + sprites: rearranged by DRIVER_INIT to leave only chars
903903   ROM_LOAD( "epr5936", 0x0000, 0x2000, CRC(c4a4df75) SHA1(7b85dbf405697b0b8881f910c08f6db6c828b19a) )
r243517r243518
925925
926926   // the pcb has a 8302 on it, though only the 8201 instructions are used
927927   ROM_REGION( 0x2000, "mcu", 0 )
928   ROM_LOAD( "alpha-8302__44801b35.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
928   ROM_LOAD( "8302.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
929929
930930   ROM_REGION( 0x2000, "gfx1", 0 ) // chars + sprites: rearranged by DRIVER_INIT to leave only chars
931931   ROM_LOAD( "epr5936", 0x0000, 0x2000, CRC(c4a4df75) SHA1(7b85dbf405697b0b8881f910c08f6db6c828b19a) )
r243517r243518
953953
954954   // the pcb has a 8302 on it, though only the 8201 instructions are used
955955   ROM_REGION( 0x2000, "mcu", 0 )
956   ROM_LOAD( "alpha-8302__44801b35.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
956   ROM_LOAD( "8302.bin", 0x0000, 0x2000, CRC(edabac6c) SHA1(eaf1c51b63023256df526b0d3fd53cffc919c901) )
957957
958958   ROM_REGION( 0x2000, "gfx1", 0 ) // chars + sprites: rearranged by DRIVER_INIT to leave only chars
959959   ROM_LOAD( "4.6a", 0x0000, 0x2000, CRC(c4a4df75) SHA1(7b85dbf405697b0b8881f910c08f6db6c828b19a) )
trunk/src/mame/drivers/equites.c
r243517r243518
12851285
12861286Main processor   - 68000 2.988MHz
12871287
1288Protection processor  - ALPHA-8303 custom
1288Video processor  - ALPHA-8303 custom
12891289
12901290Sound processor  - 8085 3.073MHz
12911291                 - TMP8155 RIOTs    (RAM & I/O Timers)
r243517r243518
13101310   ROM_LOAD( "ev4.1h", 0x06000, 0x2000, CRC(b7917264) SHA1(e58345fda088b171fd348959de15082f3cb42514) )
13111311
13121312   ROM_REGION( 0x2000, "mcu", 0 )
1313   ROM_LOAD( "alpha-8303__44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
1313   ROM_LOAD( "8303.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
13141314
13151315   ROM_REGION( 0x1000, "gfx1", 0 ) // chars
13161316   ROM_LOAD( "ep9",  0x00000, 0x1000, CRC(0325be11) SHA1(d95667b439e3d97b08efeaf08022348546a4f385) )
r243517r243518
13741374   ROM_LOAD( "ev4.1h", 0x06000, 0x2000, CRC(b7917264) SHA1(e58345fda088b171fd348959de15082f3cb42514) )
13751375
13761376   ROM_REGION( 0x2000, "mcu", 0 )
1377   ROM_LOAD( "alpha-8303__44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
1377   ROM_LOAD( "8303.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
13781378
13791379   ROM_REGION( 0x1000, "gfx1", 0 ) // chars
13801380   ROM_LOAD( "epr-ep0.3e",  0x00000, 0x1000, CRC(3f5a81c3) SHA1(8fd5bc621f483bfa46be7e40e6480b25243bdf70) )
r243517r243518
14321432   ROM_LOAD( "hv4vr.bin", 0x06000, 0x2000, CRC(62c7a25b) SHA1(237d3cbdfbf45b33c2f65d30faba151380866a93) )
14331433
14341434   ROM_REGION( 0x2000, "mcu", 0 )
1435   ROM_LOAD( "alpha-8303__44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
1435   ROM_LOAD( "8303.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
14361436
14371437   ROM_REGION( 0x1000, "gfx1", 0 ) // chars
14381438   ROM_LOAD( "h.bin", 0x000000, 0x1000, CRC(c6894c9a) SHA1(0d5a55cded4fd833211bdc733a78c6c8423897de) )
r243517r243518
15141514   ROM_LOAD( "hv4vr.bin", 0x06000, 0x2000, CRC(62c7a25b) SHA1(237d3cbdfbf45b33c2f65d30faba151380866a93) )
15151515
15161516   ROM_REGION( 0x2000, "mcu", 0 )
1517   ROM_LOAD( "alpha-8303__44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
1517   ROM_LOAD( "8303.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
15181518
15191519   ROM_REGION( 0x1000, "gfx1", 0 ) // chars
15201520   ROM_LOAD( "h.bin", 0x000000, 0x1000, CRC(c6894c9a) SHA1(0d5a55cded4fd833211bdc733a78c6c8423897de) )
r243517r243518
17121712   ROM_LOAD( "4_v.1h", 0x06000, 0x2000, CRC(10f45af4) SHA1(00fa599bad8bf3ba6deee54165f381403096e8f9) )
17131713
17141714   ROM_REGION( 0x2000, "mcu", 0 )
1715   ROM_LOAD( "alpha-8303__44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
1715   ROM_LOAD( "8303.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) )
17161716
17171717   ROM_REGION( 0x2000, "gfx1", 0 ) // chars
17181718   ROM_LOAD( "10.8c",  0x00000, 0x2000, CRC(501887d4) SHA1(3cf4401d6fddff1500066219a71ac3b30ecbdd28) )
r243517r243518
17771777   ROM_LOAD( "6_v.1h", 0x04000, 0x4000, CRC(e9542211) SHA1(482f2c90e842fe5cc31cc6a39025adf65ba47ce9) )
17781778   ROM_LOAD( "7_v.1e", 0x08000, 0x4000, CRC(44d38554) SHA1(6765971376eafa218fda1accb1e173a7c1850cc8) )
17791779
1780   ROM_REGION( 0x2000, "mcu", 0 )
1781   ROM_LOAD( "alpha-8304__44801bxx.bin", 0x0000, 0x2000, NO_DUMP )
1782
17831780   ROM_REGION( 0x2000, "gfx1", 0 ) // chars
17841781   ROM_LOAD( "5.8c",   0x00000, 0x2000, CRC(656d53cd) SHA1(9971ed7e7da0e8bf46e97e8f75a2c2201b33fc2f) )
17851782
trunk/src/mame/drivers/igs_m027.c
r243517r243518
6161   DECLARE_DRIVER_INIT(gonefsh2);
6262   DECLARE_DRIVER_INIT(sddz);
6363   DECLARE_DRIVER_INIT(hauntedh);
64   DECLARE_DRIVER_INIT(zhongguo);
64   DECLARE_DRIVER_INIT(bigd2);
6565   DECLARE_DRIVER_INIT(klxyj);
6666   DECLARE_DRIVER_INIT(fearless);
6767   TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
r243517r243518
569569
570570/*
571571
572Zhong Guo Chu Da D
572Big D2
573573IGS, 2000
574574
575575PCB Layout
r243517r243518
612612
613613*/
614614
615ROM_START( zhongguo )
615ROM_START( bigd2 )
616616   ROM_REGION( 0x04000, "maincpu", 0 )
617617   /* Internal rom of IGS027A ARM based MCU */
618   ROM_LOAD( "zhongguo_igs027a", 0x00000, 0x4000, NO_DUMP )
618   ROM_LOAD( "bigd2_igs027a", 0x00000, 0x4000, NO_DUMP )
619619
620620   ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
621621   ROM_LOAD( "p2600.u10", 0x000000, 0x80000, CRC(9ad34135) SHA1(54717753d1296efe49946369fd4a27181f19dbc0) )
r243517r243518
953953   pgm_create_dummy_internal_arm_region();
954954}
955955
956DRIVER_INIT_MEMBER(igs_m027_state,zhongguo)
956DRIVER_INIT_MEMBER(igs_m027_state,bigd2)
957957{
958   zhongguo_decrypt(machine());
958   big2_decrypt(machine());
959959   //sdwx_gfx_decrypt(machine());
960960   pgm_create_dummy_internal_arm_region();
961961}
r243517r243518
968968
969969GAME( 2002,  sdwx,      0, igs_majhong, sdwx, igs_m027_state, sdwx,        ROT0, "IGS", "Sheng Dan Wu Xian", GAME_IS_SKELETON ) // aka Christmas 5 Line?
970970GAME( 200?,  sddz,      0, igs_majhong, sdwx, igs_m027_state, sddz,        ROT0, "IGS", "Super Dou Di Zhu",  GAME_IS_SKELETON )
971GAME( 2000,  zhongguo,  0, igs_majhong, sdwx, igs_m027_state, zhongguo,    ROT0, "IGS", "Zhong Guo Chu Da D",  GAME_IS_SKELETON )
971GAME( 2000,  bigd2   0, igs_majhong, sdwx, igs_m027_state, bigd2,       ROT0, "IGS", "Big D2",  GAME_IS_SKELETON )
972972GAME( 200?,  lhzb3,     0, igs_majhong, sdwx, igs_m027_state, lhzb3,       ROT0, "IGS", "Long Hu Zheng Ba 3", GAME_IS_SKELETON )
973973GAME( 200?,  lhzb4,     0, igs_majhong, sdwx, igs_m027_state, lhzb4,       ROT0, "IGS", "Long Hu Zheng Ba 4", GAME_IS_SKELETON )
974974GAME( 200?,  klxyj,     0, igs_majhong, sdwx, igs_m027_state, klxyj,       ROT0, "IGS", "Kuai Le Xi You Ji",  GAME_IS_SKELETON )
trunk/src/mame/drivers/shougi.c
r243517r243518
459459   /* shougi has one socket empty */
460460
461461   ROM_REGION( 0x2000, "mcu", 0 )
462   ROM_LOAD( "alpha-8201__44801a75__2f25.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
462   ROM_LOAD( "8201.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
463463
464464   ROM_REGION( 0x0020, "proms", 0 )
465465   ROM_LOAD( "pr.2l",   0x0000, 0x0020, CRC(cd3559ff) SHA1(a1291b06a8a337943660b2ef62c94c49d58a6fb5) )
r243517r243518
481481   ROM_LOAD( "10-2.3l",   0x5000, 0x1000, CRC(a26385fd) SHA1(2adb21bb4f67a378014bc1edda48daca349d17e1) )
482482
483483   ROM_REGION( 0x2000, "mcu", 0 )
484   ROM_LOAD( "alpha-8201__44801a75__2f25.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
484   ROM_LOAD( "8201.bin", 0x0000, 0x2000, CRC(b77931ac) SHA1(405b02585e80d95a2821455538c5c2c31ce262d1) )
485485
486486   ROM_REGION( 0x0020, "proms", 0 )
487487   ROM_LOAD( "pr.2l",   0x0000, 0x0020, CRC(cd3559ff) SHA1(a1291b06a8a337943660b2ef62c94c49d58a6fb5) )
trunk/src/mame/includes/chaknpop.h
r243517r243518
88public:
99   chaknpop_state(const machine_config &mconfig, device_type type, const char *tag)
1010      : driver_device(mconfig, type, tag),
11      m_maincpu(*this, "maincpu"),
12      m_gfxdecode(*this, "gfxdecode"),
13      m_palette(*this, "palette"),
1411      m_mcu_ram(*this, "mcu_ram"),
1512      m_tx_ram(*this, "tx_ram"),
1613      m_attr_ram(*this, "attr_ram"),
17      m_spr_ram(*this, "spr_ram") { }
14      m_spr_ram(*this, "spr_ram"),
15      m_maincpu(*this, "maincpu"),
16      m_gfxdecode(*this, "gfxdecode"),
17      m_palette(*this, "palette") { }
1818
19   /* devices */
20   required_device<cpu_device> m_maincpu;
21   required_device<gfxdecode_device> m_gfxdecode;
22   required_device<palette_device> m_palette;
23
2419   /* memory pointers */
2520   required_shared_ptr<UINT8> m_mcu_ram;
2621   required_shared_ptr<UINT8> m_tx_ram;
r243517r243518
4237   UINT8    m_gfxmode;
4338   UINT8    m_flip_x;
4439   UINT8    m_flip_y;
45   
4640   DECLARE_WRITE8_MEMBER(coinlock_w);
47   DECLARE_READ8_MEMBER(mcu_port_a_r);
48   DECLARE_READ8_MEMBER(mcu_port_b_r);
49   DECLARE_READ8_MEMBER(mcu_port_c_r);
50   DECLARE_WRITE8_MEMBER(mcu_port_a_w);
51   DECLARE_WRITE8_MEMBER(mcu_port_b_w);
52   DECLARE_WRITE8_MEMBER(mcu_port_c_w);
53   DECLARE_READ8_MEMBER(gfxmode_r);
54   DECLARE_WRITE8_MEMBER(gfxmode_w);
55   DECLARE_WRITE8_MEMBER(txram_w);
56   DECLARE_WRITE8_MEMBER(attrram_w);
41   DECLARE_READ8_MEMBER(chaknpop_mcu_port_a_r);
42   DECLARE_READ8_MEMBER(chaknpop_mcu_port_b_r);
43   DECLARE_READ8_MEMBER(chaknpop_mcu_port_c_r);
44   DECLARE_WRITE8_MEMBER(chaknpop_mcu_port_a_w);
45   DECLARE_WRITE8_MEMBER(chaknpop_mcu_port_b_w);
46   DECLARE_WRITE8_MEMBER(chaknpop_mcu_port_c_w);
47   DECLARE_READ8_MEMBER(chaknpop_gfxmode_r);
48   DECLARE_WRITE8_MEMBER(chaknpop_gfxmode_w);
49   DECLARE_WRITE8_MEMBER(chaknpop_txram_w);
50   DECLARE_WRITE8_MEMBER(chaknpop_attrram_w);
5751   DECLARE_WRITE8_MEMBER(unknown_port_1_w);
5852   DECLARE_WRITE8_MEMBER(unknown_port_2_w);
59   TILE_GET_INFO_MEMBER(get_tx_tile_info);
60   
53   TILE_GET_INFO_MEMBER(chaknpop_get_tx_tile_info);
6154   virtual void machine_start();
6255   virtual void machine_reset();
6356   virtual void video_start();
6457   DECLARE_PALETTE_INIT(chaknpop);
65   
66   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   UINT32 screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6759   void tx_tilemap_mark_all_dirty();
68   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
69   void draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
70   
71   void mcu_update_seed(UINT8 data);
60   void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
61   void draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect );
62   void mcu_update_seed( UINT8 data );
63   required_device<cpu_device> m_maincpu;
64   required_device<gfxdecode_device> m_gfxdecode;
65   required_device<palette_device> m_palette;
7266};
trunk/src/mame/machine/chaknpop.c
r243517r243518
6363  Memory handlers
6464***************************************************************************/
6565
66READ8_MEMBER(chaknpop_state::mcu_port_a_r)
66READ8_MEMBER(chaknpop_state::chaknpop_mcu_port_a_r)
6767{
6868   //logerror("%04x: MCU port_a read\n", space.device().safe_pc());
6969   return m_mcu_result;
7070}
7171
7272
73READ8_MEMBER(chaknpop_state::mcu_port_b_r)
73READ8_MEMBER(chaknpop_state::chaknpop_mcu_port_b_r)
7474{
7575   //logerror("%04x: MCU port_b read\n", space.device().safe_pc());
7676
7777   return 0xff;
7878}
7979
80READ8_MEMBER(chaknpop_state::mcu_port_c_r)
80READ8_MEMBER(chaknpop_state::chaknpop_mcu_port_c_r)
8181{
8282   //logerror("%04x: MCU port_c read\n", space.device().safe_pc());
8383   return 0x00;
8484}
8585
86WRITE8_MEMBER(chaknpop_state::mcu_port_a_w)
86WRITE8_MEMBER(chaknpop_state::chaknpop_mcu_port_a_w)
8787{
8888   UINT8 mcu_command;
8989
r243517r243518
131131   }
132132}
133133
134WRITE8_MEMBER(chaknpop_state::mcu_port_b_w)
134WRITE8_MEMBER(chaknpop_state::chaknpop_mcu_port_b_w)
135135{
136136   //logerror("%04x: MCU port_b write 0x%02x\n", space.device().safe_pc(), data);
137137}
138138
139WRITE8_MEMBER(chaknpop_state::mcu_port_c_w)
139WRITE8_MEMBER(chaknpop_state::chaknpop_mcu_port_c_w)
140140{
141141   //logerror("%04x: MCU port_c write 0x%02x\n", space.device().safe_pc(), data);
142142}
trunk/src/mame/machine/pgmcrypt.c
r243517r243518
11201120   }
11211121}
11221122
1123static const UINT8 zhongguo_tab[0x100] = {
1123static const UINT8 big2_tab[0x100] = {
11241124   0x68, 0x56, 0xC2, 0x54, 0xA2, 0x8C, 0x7B, 0x4F, 0x37, 0xAC, 0x60, 0xF8, 0x24, 0xDF, 0x3E, 0x6B,
11251125   0xE2, 0x89, 0x3D, 0xF3, 0x31, 0x83, 0x4A, 0x65, 0x27, 0x98, 0xC5, 0xBF, 0x78, 0x3E, 0x6C, 0x02,
11261126   0x07, 0x96, 0x88, 0x4D, 0xAE, 0xA6, 0x56, 0x3A, 0x4A, 0xD5, 0xB8, 0x7E, 0x0B, 0xA7, 0x1D, 0xBC,
r243517r243518
11391139   0x1E, 0xA6, 0xFC, 0xFE, 0xE3, 0x8E, 0xB1, 0xB7, 0x0F, 0x32, 0xF1, 0xCF, 0x36, 0xFE, 0x65, 0x8E
11401140};
11411141
1142void zhongguo_decrypt(running_machine &machine)
1142void big2_decrypt(running_machine &machine)
11431143{
11441144   int i;
11451145   UINT16 *src = (UINT16 *) machine.root_device().memregion("user1")->base();
r243517r243518
11581158      IGS27_CRYPT7
11591159      IGS27_CRYPT8
11601160
1161      x ^= zhongguo_tab[(i>> 1) & 0xff] << 8;
1161      x ^= big2_tab[(i>> 1) & 0xff] << 8;
11621162
11631163      src[i] = x;
11641164   }
trunk/src/mame/machine/pgmcrypt.h
r243517r243518
2424void hauntedh_decrypt(running_machine &machine);
2525void chessc2_decrypt(running_machine &machine);
2626void klxyj_decrypt(running_machine &machine);
27void zhongguo_decrypt(running_machine &machine);
27void big2_decrypt(running_machine &machine);
2828void gonefsh2_decrypt(running_machine &machine);
2929void sddz_decrypt(running_machine &machine);
3030void lhzb3_decrypt(running_machine &machine);
trunk/src/mame/mame.lst
r243517r243518
97669766starzan         // (c) 2000?
97679767
97689768// IGS027A Cpu Games
9769zhongguo        // (c) 2000
9769bigd2           // (c) 2000
97709770sdwx            // (c) 2002
97719771sddz            // (c) 200?
97729772lhzb3           // (c) 200?
trunk/src/mame/video/chaknpop.c
r243517r243518
2525PALETTE_INIT_MEMBER(chaknpop_state, chaknpop)
2626{
2727   const UINT8 *color_prom = memregion("proms")->base();
28   
29   for (int i = 0; i < 1024; i++)
28   int i;
29
30   for (i = 0; i < 1024; i++)
3031   {
3132      int col, r, g, b;
3233      int bit0, bit1, bit2;
r243517r243518
6566   m_tx_tilemap->set_flip(m_flip_x | m_flip_y);
6667}
6768
68READ8_MEMBER(chaknpop_state::gfxmode_r)
69READ8_MEMBER(chaknpop_state::chaknpop_gfxmode_r)
6970{
7071   return m_gfxmode;
7172}
7273
73WRITE8_MEMBER(chaknpop_state::gfxmode_w)
74WRITE8_MEMBER(chaknpop_state::chaknpop_gfxmode_w)
7475{
7576   if (m_gfxmode != data)
7677   {
r243517r243518
9697   }
9798}
9899
99WRITE8_MEMBER(chaknpop_state::txram_w)
100WRITE8_MEMBER(chaknpop_state::chaknpop_txram_w)
100101{
101102   m_tx_ram[offset] = data;
102103   m_tx_tilemap->mark_tile_dirty(offset);
103104}
104105
105WRITE8_MEMBER(chaknpop_state::attrram_w)
106WRITE8_MEMBER(chaknpop_state::chaknpop_attrram_w)
106107{
107108   if (m_attr_ram[offset] != data)
108109   {
r243517r243518
122123 *  I'm not sure how to handle attributes about color
123124 */
124125
125TILE_GET_INFO_MEMBER(chaknpop_state::get_tx_tile_info)
126TILE_GET_INFO_MEMBER(chaknpop_state::chaknpop_get_tx_tile_info)
126127{
127128   int tile = m_tx_ram[tile_index];
128129   int tile_h_bank = (m_gfxmode & GFX_TX_BANK2) << 2;  /* 0x00-0xff -> 0x200-0x2ff */
r243517r243518
149150   UINT8 *RAM = memregion("maincpu")->base();
150151
151152   /*                          info                       offset             type             w   h  col row */
152   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(chaknpop_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
153   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(chaknpop_state::chaknpop_get_tx_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
153154
154155   m_vram1 = &RAM[0x10000];
155156   m_vram2 = &RAM[0x12000];
r243517r243518
174175
175176void chaknpop_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
176177{
178   int offs;
179
177180   /* Draw the sprites */
178   for (int offs = 0; offs < m_spr_ram.bytes(); offs += 4)
181   for (offs = 0; offs < m_spr_ram.bytes(); offs += 4)
179182   {
180183      int sx = m_spr_ram[offs + 3];
181184      int sy = 256 - 15 - m_spr_ram[offs];
r243517r243518
243246   }
244247}
245248
246UINT32 chaknpop_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
249UINT32 chaknpop_state::screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
247250{
248251   m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0);
249252   draw_sprites(bitmap, cliprect);
trunk/src/mess/drivers/advision.c
r243517r243518
105105
106106ROM_START( advision )
107107   ROM_REGION( 0x1000, I8048_TAG, ROMREGION_ERASE00 )
108   ROM_LOAD( "b225__ins8048-11kdp_n.u5", 0x000, 0x400, CRC(279e33d1) SHA1(bf7b0663e9125c9bfb950232eab627d9dbda8460) ) // "<natsemi logo> /B225 \\ INS8048-11KDP/N"
108   ROM_LOAD( "avbios.u5", 0x000, 0x400, CRC(279e33d1) SHA1(bf7b0663e9125c9bfb950232eab627d9dbda8460) )
109109
110110   ROM_REGION( 0x200, COP411_TAG, 0 )
111   ROM_LOAD( "b8223__cop411l-kcn_n.u8", 0x000, 0x200, CRC(81e95975) SHA1(8b6f8c30dd3e9d8e43f1ea20fba2361b383790eb) ) // "<natsemi logo> /B8223 \\ COP411L-KCN/N"
111   ROM_LOAD( "avsound.u8", 0x000, 0x200, CRC(81e95975) SHA1(8b6f8c30dd3e9d8e43f1ea20fba2361b383790eb) )
112112ROM_END
113113
114114/* Game Driver */
trunk/src/mess/drivers/alnchase.c
r243517r243518
55  Tomy Alien Chase (manufactured in Japan)
66  * boards are labeled TN-16
77  * NEC uCOM-43 MCU, labeled D553C 258
8  * red/green VFD display with color overlay, 2-sided*
9 
10  *Player one views the VFD from the front (grid+filament side) while the
11  opposite player views it from the back side (through the conductive traces),
12  basically a mirror-image.
13 
14  This is a space-themed tabletop VFD electronic game. To start, simply
15  press [UP]. Hold a joystick direction to move around.
8  * red/green VFD display with color overlay, 2-sided (opposing player sees a mirrored image)
169
17  NOTE!: MESS external artwork is required to be able to play
1810
1911***************************************************************************/
2012
r243517r243518
3123   alnchase_state(const machine_config &mconfig, device_type type, const char *tag)
3224      : driver_device(mconfig, type, tag),
3325      m_maincpu(*this, "maincpu"),
34      m_button_matrix(*this, "IN"),
3526      m_speaker(*this, "speaker")
3627   { }
3728
3829   required_device<cpu_device> m_maincpu;
39   required_ioport_array<2> m_button_matrix;
4030   required_device<speaker_sound_device> m_speaker;
4131   
42   UINT8 m_input_mux;
43   UINT32 m_plate;
44   UINT16 m_grid;
45
46   DECLARE_READ8_MEMBER(input_r);
47   DECLARE_WRITE8_MEMBER(display_w);
48   DECLARE_WRITE8_MEMBER(port_e_w);
49
50   UINT32 m_vfd_state[0x10];
51   void update_vfd();
52
5332   virtual void machine_start();
5433};
5534
5635
5736
58/***************************************************************************
59
60  Display
61
62***************************************************************************/
63
64void alnchase_state::update_vfd()
65{
66   for (int i = 0; i < 9; i++)
67      if (m_grid & (1 << i) && m_vfd_state[i] != m_plate)
68      {
69         // on difference, send to output
70         for (int j = 0; j < 17; j++)
71            output_set_lamp_value(i*100 + j, m_plate >> j & 1);
72         
73         m_vfd_state[i] = m_plate;
74      }
75}
76
77
78
79/***************************************************************************
80
81  I/O
82
83***************************************************************************/
84
85READ8_MEMBER(alnchase_state::input_r)
86{
87   UINT8 inp = 0;
88
89   // read selected button rows
90   for (int i = 0; i < 2; i++)
91      if (m_input_mux >> i & 1)
92         inp |= m_button_matrix[i]->read();
93
94   return inp;
95}
96
97WRITE8_MEMBER(alnchase_state::display_w)
98{
99   int shift;
100   
101   if (offset <= NEC_UCOM4_PORTE)
102   {
103      // C/D/E0: vfd matrix grid
104      shift = (offset - NEC_UCOM4_PORTC) * 4;
105      m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
106     
107      // C0(grid 0): input enable PL1
108      // D0(grid 4): input enable PL2
109      m_input_mux = (m_grid & 1) | (m_grid >> 3 & 2);
110   }
111   
112   if (offset >= NEC_UCOM4_PORTE)
113   {
114      // E23/F/G/H/I: vfd matrix plate
115      shift = (offset - NEC_UCOM4_PORTE) * 4;
116      m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2;
117   }
118   
119   update_vfd();
120}
121
122WRITE8_MEMBER(alnchase_state::port_e_w)
123{
124   display_w(space, offset, data);
125
126   // E1: speaker out
127   m_speaker->level_w(data >> 1 & 1);
128}
129
130
131
132/***************************************************************************
133
134  Inputs
135
136***************************************************************************/
137
138/* physical button layout and labels is like this:
139
140    POWER SOUND LEVEL PLAYER
141     ON    ON    PRO   TWO        START
142      o     o     |     |   
143      |     |     |     |       [joystick]
144      |     |     o     o
145     OFF   OFF   AMA   ONE     GAME 0,1,2,3
146   
147    1 PLAYER SIDE
148   
149    other player side only has a joystick
150*/
151
15237static INPUT_PORTS_START( alnchase )
153   PORT_START("IN.0") // C0 port A
154   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
155   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
156   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
157   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
158
159   PORT_START("IN.1") // D0 port A
160   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) // on non-mirrored view, swap P2 left/right
161   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) // "
162   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
163   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
164
165   PORT_START("SW") // port B
166   PORT_CONFNAME( 0x01, 0x01, "Players" )
167   PORT_CONFSETTING(    0x01, "1" )
168   PORT_CONFSETTING(    0x00, "2" )
169   PORT_CONFNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
170   PORT_CONFSETTING(    0x00, "Amateur" )
171   PORT_CONFSETTING(    0x02, "Professional" )
172   PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
17338INPUT_PORTS_END
17439
17540
r243517r243518
18247
18348void alnchase_state::machine_start()
18449{
185   // zerofill
186   memset(m_vfd_state, 0, sizeof(m_vfd_state));
187   m_input_mux = 0;
188   m_plate = 0;
189   m_grid = 0;
190
191   // register for savestates
192   save_item(NAME(m_vfd_state));
193   save_item(NAME(m_input_mux));
194   save_item(NAME(m_plate));
195   save_item(NAME(m_grid));
19650}
19751
19852
r243517r243518
20054
20155   /* basic machine hardware */
20256   MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz)
203   MCFG_UCOM4_READ_A_CB(READ8(alnchase_state, input_r))
204   MCFG_UCOM4_READ_B_CB(IOPORT("SW"))
205   MCFG_UCOM4_WRITE_C_CB(WRITE8(alnchase_state, display_w))
206   MCFG_UCOM4_WRITE_D_CB(WRITE8(alnchase_state, display_w))
207   MCFG_UCOM4_WRITE_E_CB(WRITE8(alnchase_state, port_e_w))
208   MCFG_UCOM4_WRITE_F_CB(WRITE8(alnchase_state, display_w))
209   MCFG_UCOM4_WRITE_G_CB(WRITE8(alnchase_state, display_w))
210   MCFG_UCOM4_WRITE_H_CB(WRITE8(alnchase_state, display_w))
211   MCFG_UCOM4_WRITE_I_CB(WRITE8(alnchase_state, display_w))
21257
21358   MCFG_DEFAULT_LAYOUT(layout_alnchase)
21459
r243517r243518
23479ROM_END
23580
23681
237CONS( 1984, alnchase, 0, 0, alnchase, alnchase, driver_device, 0, "Tomy", "Alien Chase", GAME_NOT_WORKING )
82CONS( 1984, alnchase, 0, 0, alnchase, alnchase, driver_device, 0, "Tomy", "Alien Chase", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/mbee.c
r243517r243518
3030    - Although certain models came with particular drives as standard, users could add
3131      the other size if they wished. We support both sizes on any model.
3232
33    Microbee Standard / Plus memory map
34
35        0000-7FFF RAM
36        8000-BFFF SYSTEM roms
37        C000-DFFF Edasm or WBee (edasm.rom or wbeee12.rom, optional)
38        E000-EFFF Telcom 1.2 (netrom.ic34; optional)
39        F000-F7FF Video RAM
40        F800-FFFF PCG RAM (graphics)
41
42    Microbee IC memory map (preliminary)
43
44        0000-7FFF RAM
45        8000-BFFF SYSTEM roms (bas522a.rom, bas522b.rom)
46        C000-DFFF Edasm or WBee (edasm.rom or wbeee12.rom, optional)
47        E000-EFFF Telcom (optional)
48        F000-F7FF Video RAM
49        F800-FFFF PCG RAM (graphics), Colour RAM (banked)
50
51    Microbee 56KB ROM memory map (preliminary)
52
53        0000-DFFF RAM
54        E000-EFFF ROM 56kb.rom CP/M bootstrap loader
55        F000-F7FF Video RAM
56        F800-FFFF PCG RAM (graphics), Colour RAM (banked)
57
3358    Early machines have 'standard' video (128 hires characters).
3459    Later machines had the option of 'premium' video which
3560    provides thousands of hires characters, enough to simulate
r243517r243518
4065          This rom can be replaced with the Dreamdisk Chip-8 rom.
4166        Note that Telcom 3.21 is 8k, it uses a rombank switch
4267        (by reading port 0A) to swap between the two halves.
43        See Telcom notes below.
68   See Telcom notes below.
4469
4570    EDASM - Jump to C000, usually the Editor/Assembler package.
4671
r243517r243518
5075
5176    These early colour computers have a PROM to create the foreground palette.
5277
78
5379    Notes about the printer:
5480    - When computer turned on, defaults to 1200 baud serial printer
5581    - Change it to parallel by entering OUTL#1
r243517r243518
7096    - Telcom 1.2 (used in mbeeic) has a bug. If you enter NET CLOCK, the status line is
7197      filled with inverse K. You can fix this from Basic by doing NET CLOCK 3 times.
7298
73    Notes about Disk System
74    - Ports 44 to 47 are for standard connection to FD2793.
75    - Port 48 is used for drive/side/density select on write, and intrq/drq on read.
76      intrq and drq are OR'd together, then gated to bit 7 of the data bus whenever
77      port 48 is activated on read. There are no interrupts used.
78
79    Tests of old keyboard. Start mbeeic.
80    1. Load ASTEROIDS PLUS, stay in attract mode, hold down spacebar,
81       it should only fire bullets. If it sometimes starts turning,
82       thrusting or using the shield, then there is a problem.
83
84    2. Load SCAVENGER and make sure it doesn't go to the next level
85       until you find the Exit.
86
87    3. At the Basic prompt, type in EDASM press enter. At the memory size
88       prompt press enter. Now, make sure the keyboard works properly.
89
9099***************************************************************************
91100
92101    TODO/not working:
93102
94103    - Printer needs to be understood and fixed.
104    - Keyboard loses characters if you type at a normal rate.
105    - Fix Paste (it loses most of the characters)
95106
96    - 256tc: Paste ignores shift key
97    - All others: Paste drops most characters, shift operates randomly.
98
99107    - various fdc issues:
100108        - B drive doesn't work.
101109        - some disks cause MESS to freeze.
102110        - ENMF pin missing from wd_fdc.
103111        - incorrect timing for track register causes 256tc failure to boot a disk.
104        - 56k model takes 120 seconds to boot a disk if loaded via command line.
105
106    - mbeeppc, mbee128p: In Basic, keyboard loses characters. Works fine in Wordbee.
107
112        - 56k model takes about 2 minutes to boot a disk if loaded via command line.
113   
108114    - 256tc: At the menu, if F2 pressed to activate the Monitor, the emulated machine
109115      crashes due to a bug in z80pio emulation.
110
116   
111117    - 256tc: Keyboard ROM U60 needs to be dumped.
112118    - 128k: GOLD PAL needs to be dumped for the bankswitching.
113119    - 64k: RED PAL needs to be dumped for the bankswitching.
r243517r243518
119125
120126    - Mouse: a few programs support the use of a serial mouse which interfaced
121127             directly to the Z80PIO. However there's little info to be found.
122             PIO B3 to ground activates the mouse pointer in Shell v3.01.
123128
124*******************************************************************************/
129***************************************************************************
125130
131    Description of Disk System
132
133    - Ports 44 to 47 are for standard connection to FD2793.
134    - Port 48 is used for drive/side/density select on write,
135              and intrq/drq on read.
136      intrq and drq are OR'd together, then gated to bit 7 of the
137      data bus whenever port 48 is activated on read. There are
138      no interrupts used.
139
140****************************************************************************/
141
142
126143#include "includes/mbee.h"
127144#include "formats/mbee_cas.h"
128145
146
129147#define XTAL_13_5MHz 13500000
130148
131149/********** NOTE !!! ***********************************************************
r243517r243518
138156   ADDRESS_MAP_UNMAP_HIGH
139157   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
140158   AM_RANGE(0x1000, 0x3fff) AM_RAM
141   AM_RANGE(0x4000, 0x7fff) AM_WRITENOP    // Needed because quickload to here will crash MESS
159   AM_RANGE(0x4000, 0x7fff) AM_WRITENOP    /* Needed because quickload to here will crash MESS otherwise */
142160   AM_RANGE(0x8000, 0xefff) AM_ROM
143161   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
144162   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbee_high_r, mbee_high_w)
r243517r243518
294312   ADDRESS_MAP_GLOBAL_MASK(0xff)
295313   ADDRESS_MAP_UNMAP_HIGH
296314   AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
297   AM_RANGE(0x04, 0x04) AM_WRITE(mbee_04_w)
298   AM_RANGE(0x06, 0x06) AM_WRITE(mbee_06_w)
299   AM_RANGE(0x07, 0x07) AM_READ(mbee_07_r)
300315   AM_RANGE(0x08, 0x08) AM_READWRITE(mbeeic_08_r, mbeeic_08_w)
301316   AM_RANGE(0x0b, 0x0b) AM_READWRITE(mbee_0b_r, mbee_0b_w)
302317   AM_RANGE(0x0c, 0x0c) AM_READWRITE(m6545_status_r, m6545_index_w)
r243517r243518
348363ADDRESS_MAP_END
349364
350365static INPUT_PORTS_START( mbee )
351   PORT_START("X.0") /* IN0 KEY ROW 0 [000] */
366   PORT_START("X0") /* IN0 KEY ROW 0 [000] */
352367   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') PORT_CHAR('`')
353368   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01)
354369   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(0x02)
r243517r243518
358373   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_CHAR(0x06)
359374   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_CHAR(0x07)
360375
361   PORT_START("X.1") /* IN1 KEY ROW 1 [080] */
376   PORT_START("X1") /* IN1 KEY ROW 1 [080] */
362377   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_CHAR(0x08)
363378   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_CHAR(0x09)
364379   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_CHAR(0x0a)
r243517r243518
368383   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_CHAR(0x0e)
369384   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR(0x0f)
370385
371   PORT_START("X.2") /* IN2 KEY ROW 2 [100] */
386   PORT_START("X2") /* IN2 KEY ROW 2 [100] */
372387   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_CHAR(0x10)
373388   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11)
374389   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_CHAR(0x12)
r243517r243518
378393   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') PORT_CHAR(0x16)
379394   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(0x17)
380395
381   PORT_START("X.3") /* IN3 KEY ROW 3 [180] */
396   PORT_START("X3") /* IN3 KEY ROW 3 [180] */
382397   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_CHAR(0x18)
383398   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('u') PORT_CHAR('Y') PORT_CHAR(0x19)
384399   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a)
r243517r243518
388403   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("^") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('^') PORT_CHAR('~') PORT_CHAR(0x1e)
389404   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete") PORT_CODE(KEYCODE_DEL) PORT_CHAR(8) PORT_CHAR(0x5f) PORT_CHAR(0x1f)  // port_char not working - hijacked
390405
391   PORT_START("X.4") /* IN4 KEY ROW 4 [200] */
406   PORT_START("X4") /* IN4 KEY ROW 4 [200] */
392407   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0')
393408   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
394409   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"')
r243517r243518
398413   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
399414   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
400415
401   PORT_START("X.5") /* IN5 KEY ROW 5 [280] */
416   PORT_START("X5") /* IN5 KEY ROW 5 [280] */
402417   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
403418   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
404419   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
r243517r243518
408423   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
409424   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
410425
411   PORT_START("X.6") /* IN6 KEY ROW 6 [300] */
426   PORT_START("X6") /* IN6 KEY ROW 6 [300] */
412427   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
413428   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
414429   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
r243517r243518
418433   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_END) PORT_CHAR(3)
419434   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
420435
421   PORT_START("X.7") /* IN7 KEY ROW 7 [380] */
436   PORT_START("X7") /* IN7 KEY ROW 7 [380] */
422437   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Up)") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
423438   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
424439   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Down)") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
r243517r243518
450465INPUT_PORTS_END
451466
452467static INPUT_PORTS_START( mbee256 )
453   PORT_START("Y.0") /* IN0 KEY ROW 0 [+00] */
468   PORT_START("X0") /* IN0 KEY ROW 0 [+00] */
454469   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1)
455470   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
456471   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
r243517r243518
459474   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DEL (num)") PORT_CODE(KEYCODE_DEL_PAD)
460475   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
461476
462   PORT_START("Y.1") /* IN1 KEY ROW 1 [+08] */
477   PORT_START("X1") /* IN1 KEY ROW 1 [+08] */
463478   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2)
464479   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
465480   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11)
r243517r243518
468483   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Linefeed") PORT_CODE(KEYCODE_HOME) PORT_CHAR(10)
469484   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert") PORT_CODE(KEYCODE_INSERT)
470485
471   PORT_START("Y.2") /* IN2 KEY ROW 2 [+10] */
486   PORT_START("X2") /* IN2 KEY ROW 2 [+10] */
472487   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F3") PORT_CODE(KEYCODE_F3)
473488   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
474489   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(0x17)
r243517r243518
478493   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 (num)") PORT_CODE(KEYCODE_3_PAD)
479494   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a)
480495
481   PORT_START("Y.3") /* IN3 KEY ROW 3 [+18] */
496   PORT_START("X3") /* IN3 KEY ROW 3 [+18] */
482497   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4)
483498   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
484499   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_CHAR(0x05)
r243517r243518
488503   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 (num)") PORT_CODE(KEYCODE_6_PAD)
489504   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_CHAR(0x18)
490505
491   PORT_START("Y.4") /* IN4 KEY ROW 4 [+20] */
506   PORT_START("X4") /* IN4 KEY ROW 4 [+20] */
492507   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5)
493508   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
494509   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_CHAR(0x12)
r243517r243518
498513   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 (num)") PORT_CODE(KEYCODE_9_PAD)
499514   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') PORT_CHAR(0x03)
500515
501   PORT_START("Y.5") /* IN5 KEY ROW 5 [+28] */
516   PORT_START("X5") /* IN5 KEY ROW 5 [+28] */
502517   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6)
503518   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
504519   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_CHAR(0x14)
r243517r243518
508523   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4 (num)") PORT_CODE(KEYCODE_4_PAD)
509524   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') PORT_CHAR(0x16)
510525
511   PORT_START("Y.6") /* IN6 KEY ROW 6 [+30] */
526   PORT_START("X6") /* IN6 KEY ROW 6 [+30] */
512527   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7)
513528   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
514529   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_CHAR(0x19)
r243517r243518
518533   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Right)") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
519534   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(0x02)
520535
521   PORT_START("Y.7") /* IN7 KEY ROW 7 [+38] */
536   PORT_START("X7") /* IN7 KEY ROW 7 [+38] */
522537   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8)
523538   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
524539   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_CHAR(0x15)
r243517r243518
526541   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Left)") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
527542   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_CHAR(0x0e)
528543
529   PORT_START("Y.8") /* IN0 KEY ROW 0 [+40] */
544   PORT_START("X8") /* IN0 KEY ROW 0 [+40] */
530545   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F9") PORT_CODE(KEYCODE_F9)
531546   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
532547   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_CHAR(0x09)
r243517r243518
534549   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Up)") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
535550   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_CHAR(0x0d)
536551
537   PORT_START("Y.9") /* IN1 KEY ROW 1 [+48] */
552   PORT_START("X9") /* IN1 KEY ROW 1 [+48] */
538553   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F10") PORT_CODE(KEYCODE_F10)
539554   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
540555   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR(0x0f)
r243517r243518
543558   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13)
544559   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
545560
546   PORT_START("Y.10") /* IN2 KEY ROW 2 [+50] */
561   PORT_START("X10") /* IN2 KEY ROW 2 [+50] */
547562   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F11") PORT_CODE(KEYCODE_F11)
548563   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
549564   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_CHAR(0x10)
r243517r243518
553568   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') PORT_CHAR(0x1c)
554569   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
555570
556   PORT_START("Y.11") /* IN3 KEY ROW 3 [+58] */
571   PORT_START("X11") /* IN3 KEY ROW 3 [+58] */
557572   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12)
558573   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
559574   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') PORT_CHAR(0x1b)
r243517r243518
562577   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') PORT_CHAR(0x1d)
563578   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
564579
565   PORT_START("Y.12") /* IN4 KEY ROW 4 [+60] */
580   PORT_START("X12") /* IN4 KEY ROW 4 [+60] */
566581   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
567582
568   PORT_START("Y.13") /* IN5 KEY ROW 5 [+68] */
583   PORT_START("X13") /* IN5 KEY ROW 5 [+68] */
569584   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
570585
571   PORT_START("Y.14") /* IN6 KEY ROW 6 [+70] */
586   PORT_START("X14") /* IN6 KEY ROW 6 [+70] */
572587   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Alt") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT)
573588
574589   // Autorun on quickload
r243517r243518
604619   8*16                    /* every char takes 16 bytes */
605620};
606621
607static GFXDECODE_START( mono )
622static GFXDECODE_START( mbee )
608623   GFXDECODE_ENTRY( "gfx", 0x0000, mbee_charlayout, 0, 1 )
609624GFXDECODE_END
610625
611static GFXDECODE_START( standard )
626static GFXDECODE_START( mbeeic )
612627   GFXDECODE_ENTRY( "gfx", 0x0000, mbee_charlayout, 0, 48 )
613628GFXDECODE_END
614629
615static GFXDECODE_START( premium )
630static GFXDECODE_START( mbeeppc )
616631   GFXDECODE_ENTRY( "gfx", 0x0000, mbee_charlayout, 0, 8 )
617632GFXDECODE_END
618633
r243517r243518
647662   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 19*16-1)
648663   MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
649664
650   MCFG_GFXDECODE_ADD("gfxdecode", "palette", mono)
665   MCFG_GFXDECODE_ADD("gfxdecode", "palette", mbee)
651666   MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") // usually sold with amber or green monitor
652667
653   MCFG_VIDEO_START_OVERRIDE(mbee_state, mono)
668   MCFG_VIDEO_START_OVERRIDE(mbee_state, mbee)
654669
655670   /* sound hardware */
656671   MCFG_SPEAKER_STANDARD_MONO("mono")
r243517r243518
663678   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_12MHz / 8)
664679   MCFG_MC6845_SHOW_BORDER_AREA(false)
665680   MCFG_MC6845_CHAR_WIDTH(8)
666   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mono_update_row)
667   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, crtc_update_addr)
681   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbee_update_row)
682   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr)
668683   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs))
669684
670685   MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2)
r243517r243518
703718   MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 19*16-1)
704719   MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
705720
706   MCFG_GFXDECODE_ADD("gfxdecode", "palette", standard)
721   MCFG_GFXDECODE_ADD("gfxdecode", "palette", mbeeic)
707722
708723   MCFG_PALETTE_ADD("palette", 96)
709   MCFG_PALETTE_INIT_OWNER(mbee_state, standard)
724   MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeic)
710725
711   MCFG_VIDEO_START_OVERRIDE(mbee_state, standard)
726   MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeic)
712727
713728   /* sound hardware */
714729   MCFG_SPEAKER_STANDARD_MONO("mono")
r243517r243518
721736   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8)
722737   MCFG_MC6845_SHOW_BORDER_AREA(false)
723738   MCFG_MC6845_CHAR_WIDTH(8)
724   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, colour_update_row)
725   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, crtc_update_addr)
739   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeic_update_row)
740   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr)
726741   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs))
727742
728743   MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2)
r243517r243518
758773   MCFG_CPU_MODIFY( "maincpu" )
759774   MCFG_CPU_PROGRAM_MAP(mbeeppc_mem)
760775   MCFG_CPU_IO_MAP(mbeeppc_io)
761   MCFG_VIDEO_START_OVERRIDE(mbee_state, premium)
762   MCFG_GFXDECODE_MODIFY("gfxdecode", premium)
776   MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeppc)
777   MCFG_GFXDECODE_MODIFY("gfxdecode", mbeeppc)
763778   MCFG_PALETTE_MODIFY("palette")
764779   MCFG_PALETTE_ENTRIES(16)
765   MCFG_PALETTE_INIT_OWNER(mbee_state, premium)
780   MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeppc)
781
782   MCFG_DEVICE_REMOVE("crtc")
783   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8)
784   MCFG_MC6845_SHOW_BORDER_AREA(false)
785   MCFG_MC6845_CHAR_WIDTH(8)
786   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeppc_update_row)
787   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr)
788   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs))
766789MACHINE_CONFIG_END
767790
768791static MACHINE_CONFIG_DERIVED( mbee56, mbeeic )
r243517r243518
782805   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
783806   MCFG_CPU_IO_MAP(mbee128_io)
784807   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128)
785   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
786808MACHINE_CONFIG_END
787809
788810static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
r243517r243518
790812   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
791813   MCFG_CPU_IO_MAP(mbee128_io)
792814   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128)
793   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
794815   MCFG_WD2793x_ADD("fdc", XTAL_4MHz / 4)
795816   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mbee_state, fdc_intrq_w))
796817   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w))
r243517r243518
803824   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
804825   MCFG_CPU_IO_MAP(mbee256_io)
805826   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee256)
827   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
806828
829   MCFG_DEVICE_REMOVE("crtc")
830   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8)
831   MCFG_MC6845_SHOW_BORDER_AREA(false)
832   MCFG_MC6845_CHAR_WIDTH(8)
833   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeppc_update_row)
834   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee256_update_addr)
807835   MCFG_DEVICE_REMOVE("fdc:0")
808836   MCFG_DEVICE_REMOVE("fdc:1")
809837   MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive3a", floppy_image_device::default_floppy_formats)
r243517r243518
814842   MCFG_CPU_MODIFY( "maincpu" )
815843   MCFG_CPU_PROGRAM_MAP(mbeett_mem)
816844   MCFG_CPU_IO_MAP(mbeett_io)
817   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbeett)
845   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbeett )
818846   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
847
848   MCFG_DEVICE_REMOVE("crtc")
849   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8)
850   MCFG_MC6845_SHOW_BORDER_AREA(false)
851   MCFG_MC6845_CHAR_WIDTH(8)
852   MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeppc_update_row)
853   MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee256_update_addr)
819854MACHINE_CONFIG_END
820855
821856/* Unused roms:
trunk/src/mess/drivers/tmtennis.c
r243517r243518
99 
1010  The initial release of this game was in 1979, known as Pro-Tennis,
1111  it is unknown if the hardware and/or ROM contents differ.
12
13  This is an early VFD simple electronic tennis game. Player 1 is on the right
14  side, player 2 or CPU on the left. Each player has six possible positions
15  where to hit the ball. A backdrop behind the VFD shows a tennis court.
1612 
17  NOTE!: MESS external artwork is required to be able to play
1813
14  TODO:
15  - 2-player mode doesn't work: the guys auto-serve and the left player
16    always hits the net, mcu emulation bug?
17  - difficulty switch changes mcu freq
18
1919***************************************************************************/
2020
2121#include "emu.h"
r243517r243518
2424
2525#include "tmtennis.lh" // this is a test layout, external artwork is necessary
2626
27// master clock is from an LC circuit oscillating by default at 360kHz,
28// the difficulty switch puts a capacitor across it to slow it down to 260kHz
29#define MASTER_CLOCK_PRO1 (260000)
30#define MASTER_CLOCK_PRO2 (360000)
2731
32
2833class tmtennis_state : public driver_device
2934{
3035public:
r243517r243518
4853   DECLARE_WRITE8_MEMBER(plate_w);
4954   DECLARE_WRITE8_MEMBER(grid_w);
5055
51   DECLARE_INPUT_CHANGED_MEMBER(difficulty_switch);
52   void update_clock();
53
5456   UINT16 m_vfd_state[0x10];
5557   void update_vfd();
5658
57   virtual void machine_reset();
5859   virtual void machine_start();
5960};
6061
61// master clock is from an LC circuit oscillating by default at 360kHz, but...
62#define MASTER_CLOCK (360000)
6362
64void tmtennis_state::update_clock()
65{
66   // ...on PRO1, the difficulty switch puts a capacitor across the LC circuit
67   // to slow it down to approx. 260kHz (28%)
68   m_maincpu->set_clock_scale(m_button_matrix[1]->read() & 0x100 ? 0.72 : 1);
69}
7063
71
72
7364/***************************************************************************
7465
7566  Display
r243517r243518
10495
10596   // read selected button rows
10697   for (int i = 0; i < 2; i++)
107      if (m_input_mux >> i & 1)
98      if (~m_input_mux >> i & 1)
10899         inp &= m_button_matrix[i]->read();
109100
110101   return inp >> (offset*4);
r243517r243518
146137
147138***************************************************************************/
148139
149INPUT_CHANGED_MEMBER(tmtennis_state::difficulty_switch)
150{
151   update_clock();
152}
153
154140/* Pro-Tennis physical button layout and labels is like this:
155141
156142    [SERVE] [1] [2] [3]       [3] [2] [1] [SERVE]
r243517r243518
160146*/
161147
162148static INPUT_PORTS_START( tmtennis )
163   PORT_START("IN.0") // E0 port A/B
164   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Serve")
165   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Serve")
166   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
167   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
168   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
169   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 )
170   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
171   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 )
172
173   PORT_START("IN.1") // E1 port A/B
174   PORT_CONFNAME( 0x101, 0x101, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, tmtennis_state, difficulty_switch, NULL)
149   PORT_START("IN.0") // E0 port A/B (left side)
150   PORT_CONFNAME( 0x101, 0x001, DEF_STR( Difficulty ) )
175151   PORT_CONFSETTING(     0x000, "Practice" )
176   PORT_CONFSETTING(     0x101, "Pro 1" ) // -> difficulty_switch
177   PORT_CONFSETTING(     0x001, "Pro 2" )
178   PORT_CONFNAME( 0x02, 0x02, "Players" )
179   PORT_CONFSETTING(    0x02, "1" )
180   PORT_CONFSETTING(    0x00, "2" )
152   PORT_CONFSETTING(     0x001, "Pro 1" )
153   PORT_CONFSETTING(     0x101, "Pro 2" )
154   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) // P2 serve
181155   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
182156   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
183157   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
184158   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
185159   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
186160   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
161
162   PORT_START("IN.1") // E1 port A/B (right side)
163   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) // P1 serve
164   PORT_CONFNAME( 0x02, 0x02, "Players" )
165   PORT_CONFSETTING(    0x02, "1" )
166   PORT_CONFSETTING(    0x00, "2" )
167   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
168   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
169   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
170   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 )
171   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
172   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 )
187173INPUT_PORTS_END
188174
189175
r243517r243518
194180
195181***************************************************************************/
196182
197void tmtennis_state::machine_reset()
198{
199   update_clock();
200}
201
202183void tmtennis_state::machine_start()
203184{
204185   // zerofill
r243517r243518
218199static MACHINE_CONFIG_START( tmtennis, tmtennis_state )
219200
220201   /* basic machine hardware */
221   MCFG_CPU_ADD("maincpu", NEC_D552, MASTER_CLOCK)
202   MCFG_CPU_ADD("maincpu", NEC_D552, MASTER_CLOCK_PRO2)
222203   MCFG_UCOM4_READ_A_CB(READ8(tmtennis_state, input_r))
223204   MCFG_UCOM4_READ_B_CB(READ8(tmtennis_state, input_r))
224205   MCFG_UCOM4_WRITE_C_CB(WRITE8(tmtennis_state, plate_w))
r243517r243518
253234ROM_END
254235
255236
256CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomytronic)", GAME_SUPPORTS_SAVE )
237CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomytronic)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/wildfire.c
r243517r243518
55  Parker Brothers Wildfire, by Bob and Holly Doyle (prototype), and Garry Kitchen
66  * AMI S2150, labeled C10641
77
8  This is an electronic handheld pinball game. It has dozens of small leds
9  to create the illusion of a moving ball, and even the flippers are leds.
10  A drawing of a pinball table is added as overlay.
8  x
119
12  NOTE!: MESS external artwork is required to be able to play
1310
14
1511  TODO:
1612  - no sound
1713  - flipper buttons aren't working correctly
trunk/src/mess/includes/mbee.h
r243517r243518
5252      , m_pak(*this, "pak")
5353      , m_telcom(*this, "telcom")
5454      , m_basic(*this, "basic")
55      , m_io_x0(*this, "X0")
56      , m_io_x1(*this, "X1")
57      , m_io_x2(*this, "X2")
58      , m_io_x3(*this, "X3")
59      , m_io_x4(*this, "X4")
60      , m_io_x5(*this, "X5")
61      , m_io_x6(*this, "X6")
62      , m_io_x7(*this, "X7")
5563      , m_io_extra(*this, "EXTRA")
5664      , m_io_config(*this, "CONFIG")
57      , m_io_oldkb(*this, "X")
58      , m_io_newkb(*this, "Y")
65      , m_io_x8(*this, "X8")
66      , m_io_x9(*this, "X9")
67      , m_io_x10(*this, "X10")
68      , m_io_x11(*this, "X11")
69      , m_io_x12(*this, "X12")
70      , m_io_x13(*this, "X13")
71      , m_io_x14(*this, "X14")
5972      , m_screen(*this, "screen")
6073   { }
6174
r243517r243518
110123   DECLARE_DRIVER_INIT(mbeeic);
111124   DECLARE_DRIVER_INIT(mbee128);
112125   DECLARE_MACHINE_RESET(mbee);
113   DECLARE_VIDEO_START(mono);
114   DECLARE_VIDEO_START(standard);
115   DECLARE_VIDEO_START(premium);
116   DECLARE_PALETTE_INIT(standard);
126   DECLARE_VIDEO_START(mbee);
127   DECLARE_VIDEO_START(mbeeic);
128   DECLARE_PALETTE_INIT(mbeeic);
117129   DECLARE_PALETTE_INIT(mbeepc85b);
118   DECLARE_PALETTE_INIT(premium);
130   DECLARE_VIDEO_START(mbeeppc);
131   DECLARE_PALETTE_INIT(mbeeppc);
119132   DECLARE_MACHINE_RESET(mbee56);
120133   DECLARE_MACHINE_RESET(mbee128);
121134   DECLARE_MACHINE_RESET(mbee256);
r243517r243518
139152   void mbee_video_kbd_scan(int param);
140153   UINT8 m_sy6545_cursor[16];
141154
142   MC6845_UPDATE_ROW(mono_update_row);
143   MC6845_UPDATE_ROW(colour_update_row);
144   MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
155   MC6845_UPDATE_ROW(mbee_update_row);
156   MC6845_UPDATE_ROW(mbeeic_update_row);
157   MC6845_UPDATE_ROW(mbeeppc_update_row);
158   MC6845_ON_UPDATE_ADDR_CHANGED(mbee_update_addr);
159   MC6845_ON_UPDATE_ADDR_CHANGED(mbee256_update_addr);
145160
146161   required_device<palette_device> m_palette;
147162private:
148163   bool m_is_premium;
149   bool m_has_oldkb;
150164   size_t m_size;
151165   bool m_b7_rtc;
152166   bool m_b7_vs;
153   bool m_b2;
167   UINT8 m_mbee256_key_available;
154168   UINT8 m_mbee256_was_pressed[15];
155169   UINT8 m_mbee256_q[20];
156170   UINT8 m_mbee256_q_pos;
r243517r243518
182196   optional_memory_bank m_pak;
183197   optional_memory_bank m_telcom;
184198   optional_memory_bank m_basic;
199   required_ioport m_io_x0;
200   required_ioport m_io_x1;
201   required_ioport m_io_x2;
202   required_ioport m_io_x3;
203   required_ioport m_io_x4;
204   required_ioport m_io_x5;
205   required_ioport m_io_x6;
206   required_ioport m_io_x7;
185207   optional_ioport m_io_extra;
186   required_ioport m_io_config;
187   optional_ioport_array<8> m_io_oldkb;
188   optional_ioport_array<15> m_io_newkb;
208   optional_ioport m_io_config;
209   optional_ioport m_io_x8;
210   optional_ioport m_io_x9;
211   optional_ioport m_io_x10;
212   optional_ioport m_io_x11;
213   optional_ioport m_io_x12;
214   optional_ioport m_io_x13;
215   optional_ioport m_io_x14;
189216   required_device<screen_device> m_screen;
190217};
191218
trunk/src/mess/layout/alnchase.lay
r243517r243518
55
66   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
77
8   <element name="led" defstate="0">
9      <disk state="0"><color red="0.1" green="0.2" blue="0.12" /></disk>
10      <disk state="1"><color red="0.5" green="1.0" blue="0.6" /></disk>
8   <element name="green" defstate="0">
9      <disk state="0"><color red="0.0" green="0.1" blue="0.0" /></disk>
10      <disk state="1"><color red="0.2" green="1.0" blue="0.2" /></disk>
1111   </element>
12   <element name="red" defstate="0">
13      <disk state="0"><color red="0.1" green="0.0" blue="0.0" /></disk>
14      <disk state="1"><color red="1.0" green="0.2" blue="0.2" /></disk>
15   </element>
1216
1317
1418<!-- build screen -->
1519
1620   <view name="Test Layout">
17      <bounds left="0" right="64" top="0" bottom="64" />
21      <bounds left="0" right="100" top="0" bottom="100" />
1822      <bezel element="static_black">
19         <bounds left="0" right="64" top="0" bottom="64" />
23         <bounds left="0" right="100" top="0" bottom="100" />
2024      </bezel>
2125
22   <!-- 17*9 matrix -->
26   <!-- matrix -->
2327
24      <bezel name="lamp800" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel>
25      <bezel name="lamp801" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel>
26      <bezel name="lamp802" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel>
27      <bezel name="lamp803" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel>
28      <bezel name="lamp804" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel>
29      <bezel name="lamp805" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel>
30      <bezel name="lamp806" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel>
31      <bezel name="lamp807" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel>
32      <bezel name="lamp808" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel>
33      <bezel name="lamp809" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel>
34      <bezel name="lamp810" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel>
35      <bezel name="lamp811" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel>
36      <bezel name="lamp812" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel>
37      <bezel name="lamp813" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel>
38      <bezel name="lamp814" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel>
39      <bezel name="lamp815" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel>
40      <bezel name="lamp816" element="led"><bounds x="32" y="0" width="1" height="1" /></bezel>
28      <bezel name="lamp0" element="green"><bounds x="0" y="0" width="1" height="1" /></bezel>
4129
42      <bezel name="lamp700" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel>
43      <bezel name="lamp701" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel>
44      <bezel name="lamp702" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel>
45      <bezel name="lamp703" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel>
46      <bezel name="lamp704" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel>
47      <bezel name="lamp705" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel>
48      <bezel name="lamp706" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel>
49      <bezel name="lamp707" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel>
50      <bezel name="lamp708" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel>
51      <bezel name="lamp709" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel>
52      <bezel name="lamp710" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel>
53      <bezel name="lamp711" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel>
54      <bezel name="lamp712" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel>
55      <bezel name="lamp713" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel>
56      <bezel name="lamp714" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel>
57      <bezel name="lamp715" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel>
58      <bezel name="lamp716" element="led"><bounds x="32" y="2" width="1" height="1" /></bezel>
5930
60      <bezel name="lamp600" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel>
61      <bezel name="lamp601" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel>
62      <bezel name="lamp602" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel>
63      <bezel name="lamp603" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel>
64      <bezel name="lamp604" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel>
65      <bezel name="lamp605" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel>
66      <bezel name="lamp606" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel>
67      <bezel name="lamp607" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel>
68      <bezel name="lamp608" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel>
69      <bezel name="lamp609" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel>
70      <bezel name="lamp610" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel>
71      <bezel name="lamp611" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel>
72      <bezel name="lamp612" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel>
73      <bezel name="lamp613" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel>
74      <bezel name="lamp614" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel>
75      <bezel name="lamp615" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel>
76      <bezel name="lamp616" element="led"><bounds x="32" y="4" width="1" height="1" /></bezel>
77
78      <bezel name="lamp500" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel>
79      <bezel name="lamp501" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel>
80      <bezel name="lamp502" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel>
81      <bezel name="lamp503" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel>
82      <bezel name="lamp504" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel>
83      <bezel name="lamp505" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel>
84      <bezel name="lamp506" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel>
85      <bezel name="lamp507" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel>
86      <bezel name="lamp508" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel>
87      <bezel name="lamp509" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel>
88      <bezel name="lamp510" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel>
89      <bezel name="lamp511" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel>
90      <bezel name="lamp512" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel>
91      <bezel name="lamp513" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel>
92      <bezel name="lamp514" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel>
93      <bezel name="lamp515" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel>
94      <bezel name="lamp516" element="led"><bounds x="32" y="6" width="1" height="1" /></bezel>
95
96      <bezel name="lamp400" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel>
97      <bezel name="lamp401" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel>
98      <bezel name="lamp402" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel>
99      <bezel name="lamp403" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel>
100      <bezel name="lamp404" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel>
101      <bezel name="lamp405" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel>
102      <bezel name="lamp406" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel>
103      <bezel name="lamp407" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel>
104      <bezel name="lamp408" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel>
105      <bezel name="lamp409" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel>
106      <bezel name="lamp410" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel>
107      <bezel name="lamp411" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel>
108      <bezel name="lamp412" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel>
109      <bezel name="lamp413" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel>
110      <bezel name="lamp414" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel>
111      <bezel name="lamp415" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel>
112      <bezel name="lamp416" element="led"><bounds x="32" y="8" width="1" height="1" /></bezel>
113
114      <bezel name="lamp300" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
115      <bezel name="lamp301" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel>
116      <bezel name="lamp302" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel>
117      <bezel name="lamp303" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
118      <bezel name="lamp304" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
119      <bezel name="lamp305" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel>
120      <bezel name="lamp306" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel>
121      <bezel name="lamp307" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel>
122      <bezel name="lamp308" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel>
123      <bezel name="lamp309" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel>
124      <bezel name="lamp310" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel>
125      <bezel name="lamp311" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel>
126      <bezel name="lamp312" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel>
127      <bezel name="lamp313" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel>
128      <bezel name="lamp314" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel>
129      <bezel name="lamp315" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel>
130      <bezel name="lamp316" element="led"><bounds x="32" y="10" width="1" height="1" /></bezel>
131
132      <bezel name="lamp200" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel>
133      <bezel name="lamp201" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel>
134      <bezel name="lamp202" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel>
135      <bezel name="lamp203" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel>
136      <bezel name="lamp204" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel>
137      <bezel name="lamp205" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel>
138      <bezel name="lamp206" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel>
139      <bezel name="lamp207" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel>
140      <bezel name="lamp208" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel>
141      <bezel name="lamp209" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel>
142      <bezel name="lamp210" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel>
143      <bezel name="lamp211" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel>
144      <bezel name="lamp212" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel>
145      <bezel name="lamp213" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel>
146      <bezel name="lamp214" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel>
147      <bezel name="lamp215" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel>
148      <bezel name="lamp216" element="led"><bounds x="32" y="12" width="1" height="1" /></bezel>
149
150      <bezel name="lamp100" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel>
151      <bezel name="lamp101" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel>
152      <bezel name="lamp102" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel>
153      <bezel name="lamp103" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel>
154      <bezel name="lamp104" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel>
155      <bezel name="lamp105" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel>
156      <bezel name="lamp106" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel>
157      <bezel name="lamp107" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel>
158      <bezel name="lamp108" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel>
159      <bezel name="lamp109" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel>
160      <bezel name="lamp110" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel>
161      <bezel name="lamp111" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel>
162      <bezel name="lamp112" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel>
163      <bezel name="lamp113" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel>
164      <bezel name="lamp114" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel>
165      <bezel name="lamp115" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel>
166      <bezel name="lamp116" element="led"><bounds x="32" y="14" width="1" height="1" /></bezel>
167
168      <bezel name="lamp0" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel>
169      <bezel name="lamp1" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel>
170      <bezel name="lamp2" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel>
171      <bezel name="lamp3" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel>
172      <bezel name="lamp4" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel>
173      <bezel name="lamp5" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel>
174      <bezel name="lamp6" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel>
175      <bezel name="lamp7" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel>
176      <bezel name="lamp8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel>
177      <bezel name="lamp9" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel>
178      <bezel name="lamp10" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel>
179      <bezel name="lamp11" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel>
180      <bezel name="lamp12" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel>
181      <bezel name="lamp13" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel>
182      <bezel name="lamp14" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel>
183      <bezel name="lamp15" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel>
184      <bezel name="lamp16" element="led"><bounds x="32" y="16" width="1" height="1" /></bezel>
185
186
18731   </view>
18832</mamelayout>
trunk/src/mess/layout/edracula.lay
r243517r243518
55
66   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
77
8   <element name="led" defstate="0">
9      <disk state="0"><color red="0.1" green="0.2" blue="0.2" /></disk>
10      <disk state="1"><color red="0.5" green="1.0" blue="1.0" /></disk>
8   <element name="cyan" defstate="0">
9      <disk state="0"><color red="0.0" green="0.1" blue="0.1" /></disk>
10      <disk state="1"><color red="0.2" green="1.0" blue="1.0" /></disk>
1111   </element>
12   <element name="green" defstate="0">
13      <disk state="0"><color red="0.0" green="0.1" blue="0.0" /></disk>
14      <disk state="1"><color red="0.2" green="1.0" blue="0.2" /></disk>
15   </element>
16   <element name="red" defstate="0">
17      <disk state="0"><color red="0.1" green="0.0" blue="0.0" /></disk>
18      <disk state="1"><color red="1.0" green="0.2" blue="0.2" /></disk>
19   </element>
1220
1321
1422<!-- build screen -->
1523
1624   <view name="Test Layout">
17      <bounds left="0" right="64" top="0" bottom="64" />
25      <bounds left="0" right="100" top="0" bottom="100" />
1826      <bezel element="static_black">
19         <bounds left="0" right="64" top="0" bottom="64" />
27         <bounds left="0" right="100" top="0" bottom="100" />
2028      </bezel>
2129
22   <!-- 8*18 matrix -->
30   <!-- matrix -->
2331
24      <bezel name="lamp700" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel>
25      <bezel name="lamp701" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel>
26      <bezel name="lamp702" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel>
27      <bezel name="lamp703" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel>
28      <bezel name="lamp704" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel>
29      <bezel name="lamp705" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
30      <bezel name="lamp706" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel>
31      <bezel name="lamp707" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel>
32      <bezel name="lamp708" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel>
33      <bezel name="lamp709" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel>
34      <bezel name="lamp710" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel>
35      <bezel name="lamp711" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel>
36      <bezel name="lamp712" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel>
37      <bezel name="lamp713" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel>
38      <bezel name="lamp714" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel>
39      <bezel name="lamp715" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel>
40      <bezel name="lamp716" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel>
41      <bezel name="lamp717" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel>
32      <bezel name="lamp0" element="green"><bounds x="0" y="0" width="1" height="1" /></bezel>
4233
43      <bezel name="lamp600" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel>
44      <bezel name="lamp601" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel>
45      <bezel name="lamp602" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel>
46      <bezel name="lamp603" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel>
47      <bezel name="lamp604" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel>
48      <bezel name="lamp605" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel>
49      <bezel name="lamp606" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel>
50      <bezel name="lamp607" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel>
51      <bezel name="lamp608" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel>
52      <bezel name="lamp609" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel>
53      <bezel name="lamp610" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel>
54      <bezel name="lamp611" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel>
55      <bezel name="lamp612" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel>
56      <bezel name="lamp613" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel>
57      <bezel name="lamp614" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel>
58      <bezel name="lamp615" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel>
59      <bezel name="lamp616" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel>
60      <bezel name="lamp617" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel>
6134
62      <bezel name="lamp500" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel>
63      <bezel name="lamp501" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel>
64      <bezel name="lamp502" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel>
65      <bezel name="lamp503" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel>
66      <bezel name="lamp504" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel>
67      <bezel name="lamp505" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel>
68      <bezel name="lamp506" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel>
69      <bezel name="lamp507" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel>
70      <bezel name="lamp508" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel>
71      <bezel name="lamp509" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel>
72      <bezel name="lamp510" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel>
73      <bezel name="lamp511" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel>
74      <bezel name="lamp512" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel>
75      <bezel name="lamp513" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel>
76      <bezel name="lamp514" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel>
77      <bezel name="lamp515" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel>
78      <bezel name="lamp516" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel>
79      <bezel name="lamp517" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel>
80
81      <bezel name="lamp400" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel>
82      <bezel name="lamp401" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel>
83      <bezel name="lamp402" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel>
84      <bezel name="lamp403" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel>
85      <bezel name="lamp404" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel>
86      <bezel name="lamp405" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
87      <bezel name="lamp406" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel>
88      <bezel name="lamp407" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel>
89      <bezel name="lamp408" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel>
90      <bezel name="lamp409" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel>
91      <bezel name="lamp410" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel>
92      <bezel name="lamp411" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel>
93      <bezel name="lamp412" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel>
94      <bezel name="lamp413" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel>
95      <bezel name="lamp414" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel>
96      <bezel name="lamp415" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel>
97      <bezel name="lamp416" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel>
98      <bezel name="lamp417" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel>
99
100      <bezel name="lamp300" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel>
101      <bezel name="lamp301" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel>
102      <bezel name="lamp302" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel>
103      <bezel name="lamp303" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel>
104      <bezel name="lamp304" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel>
105      <bezel name="lamp305" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
106      <bezel name="lamp306" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel>
107      <bezel name="lamp307" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel>
108      <bezel name="lamp308" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel>
109      <bezel name="lamp309" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel>
110      <bezel name="lamp310" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel>
111      <bezel name="lamp311" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel>
112      <bezel name="lamp312" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel>
113      <bezel name="lamp313" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel>
114      <bezel name="lamp314" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel>
115      <bezel name="lamp315" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel>
116      <bezel name="lamp316" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel>
117      <bezel name="lamp317" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel>
118
119      <bezel name="lamp200" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel>
120      <bezel name="lamp201" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel>
121      <bezel name="lamp202" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel>
122      <bezel name="lamp203" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel>
123      <bezel name="lamp204" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel>
124      <bezel name="lamp205" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel>
125      <bezel name="lamp206" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel>
126      <bezel name="lamp207" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel>
127      <bezel name="lamp208" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel>
128      <bezel name="lamp209" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel>
129      <bezel name="lamp210" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel>
130      <bezel name="lamp211" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel>
131      <bezel name="lamp212" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel>
132      <bezel name="lamp213" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel>
133      <bezel name="lamp214" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel>
134      <bezel name="lamp215" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel>
135      <bezel name="lamp216" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel>
136      <bezel name="lamp217" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel>
137
138      <bezel name="lamp100" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel>
139      <bezel name="lamp101" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel>
140      <bezel name="lamp102" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel>
141      <bezel name="lamp103" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel>
142      <bezel name="lamp104" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel>
143      <bezel name="lamp105" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel>
144      <bezel name="lamp106" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel>
145      <bezel name="lamp107" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel>
146      <bezel name="lamp108" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel>
147      <bezel name="lamp109" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel>
148      <bezel name="lamp110" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel>
149      <bezel name="lamp111" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel>
150      <bezel name="lamp112" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel>
151      <bezel name="lamp113" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel>
152      <bezel name="lamp114" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel>
153      <bezel name="lamp115" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel>
154      <bezel name="lamp116" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel>
155      <bezel name="lamp117" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel>
156
157      <bezel name="lamp0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel>
158      <bezel name="lamp1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel>
159      <bezel name="lamp2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel>
160      <bezel name="lamp3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel>
161      <bezel name="lamp4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel>
162      <bezel name="lamp5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel>
163      <bezel name="lamp6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel>
164      <bezel name="lamp7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel>
165      <bezel name="lamp8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel>
166      <bezel name="lamp9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel>
167      <bezel name="lamp10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel>
168      <bezel name="lamp11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel>
169      <bezel name="lamp12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel>
170      <bezel name="lamp13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel>
171      <bezel name="lamp14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel>
172      <bezel name="lamp15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel>
173      <bezel name="lamp16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel>
174      <bezel name="lamp17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel>
175
176
17735   </view>
17836</mamelayout>
trunk/src/mess/layout/tmtennis.lay
r243517r243518
55
66   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
77
8   <element name="led" defstate="0">
9      <disk state="0"><color red="0.05" green="0.15" blue="0.05" /></disk>
10      <disk state="1"><color red="0.3" green="1.0" blue="0.3" /></disk>
8   <element name="green" defstate="0">
9      <disk state="0"><color red="0.0" green="0.1" blue="0.0" /></disk>
10      <disk state="1"><color red="0.2" green="1.0" blue="0.2" /></disk>
1111   </element>
1212
1313
1414<!-- build screen -->
1515
1616   <view name="Test Layout">
17      <bounds left="0" right="64" top="0" bottom="64" />
17      <bounds left="0" right="100" top="0" bottom="100" />
1818      <bezel element="static_black">
19         <bounds left="0" right="64" top="0" bottom="64" />
19         <bounds left="0" right="100" top="0" bottom="100" />
2020      </bezel>
2121
22   <!-- 12*12 matrix -->
22   <!-- matrix -->
2323
24      <bezel name="lamp0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel>
25      <bezel name="lamp1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel>
26      <bezel name="lamp2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel>
27      <bezel name="lamp3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel>
28      <bezel name="lamp4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel>
29      <bezel name="lamp5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
30      <bezel name="lamp6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel>
31      <bezel name="lamp7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel>
32      <bezel name="lamp8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel>
33      <bezel name="lamp9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel>
34      <bezel name="lamp10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel>
35      <bezel name="lamp11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel>
24      <bezel name="lamp0" element="green"><bounds x="0" y="0" width="1" height="1" /></bezel>
25      <bezel name="lamp1" element="green"><bounds x="0" y="2" width="1" height="1" /></bezel>
26      <bezel name="lamp2" element="green"><bounds x="0" y="4" width="1" height="1" /></bezel>
27      <bezel name="lamp3" element="green"><bounds x="0" y="6" width="1" height="1" /></bezel>
28      <bezel name="lamp4" element="green"><bounds x="0" y="8" width="1" height="1" /></bezel>
29      <bezel name="lamp5" element="green"><bounds x="0" y="10" width="1" height="1" /></bezel>
30      <bezel name="lamp6" element="green"><bounds x="0" y="12" width="1" height="1" /></bezel>
31      <bezel name="lamp7" element="green"><bounds x="0" y="14" width="1" height="1" /></bezel>
32      <bezel name="lamp8" element="green"><bounds x="0" y="16" width="1" height="1" /></bezel>
33      <bezel name="lamp9" element="green"><bounds x="0" y="18" width="1" height="1" /></bezel>
34      <bezel name="lamp10" element="green"><bounds x="0" y="20" width="1" height="1" /></bezel>
35      <bezel name="lamp11" element="green"><bounds x="0" y="22" width="1" height="1" /></bezel>
3636
37      <bezel name="lamp100" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel>
38      <bezel name="lamp101" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel>
39      <bezel name="lamp102" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel>
40      <bezel name="lamp103" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel>
41      <bezel name="lamp104" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel>
42      <bezel name="lamp105" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel>
43      <bezel name="lamp106" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel>
44      <bezel name="lamp107" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel>
45      <bezel name="lamp108" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel>
46      <bezel name="lamp109" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel>
47      <bezel name="lamp110" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel>
48      <bezel name="lamp111" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel>
37      <bezel name="lamp100" element="green"><bounds x="2" y="0" width="1" height="1" /></bezel>
38      <bezel name="lamp101" element="green"><bounds x="2" y="2" width="1" height="1" /></bezel>
39      <bezel name="lamp102" element="green"><bounds x="2" y="4" width="1" height="1" /></bezel>
40      <bezel name="lamp103" element="green"><bounds x="2" y="6" width="1" height="1" /></bezel>
41      <bezel name="lamp104" element="green"><bounds x="2" y="8" width="1" height="1" /></bezel>
42      <bezel name="lamp105" element="green"><bounds x="2" y="10" width="1" height="1" /></bezel>
43      <bezel name="lamp106" element="green"><bounds x="2" y="12" width="1" height="1" /></bezel>
44      <bezel name="lamp107" element="green"><bounds x="2" y="14" width="1" height="1" /></bezel>
45      <bezel name="lamp108" element="green"><bounds x="2" y="16" width="1" height="1" /></bezel>
46      <bezel name="lamp109" element="green"><bounds x="2" y="18" width="1" height="1" /></bezel>
47      <bezel name="lamp110" element="green"><bounds x="2" y="20" width="1" height="1" /></bezel>
48      <bezel name="lamp111" element="green"><bounds x="2" y="22" width="1" height="1" /></bezel>
4949
50      <bezel name="lamp200" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel>
51      <bezel name="lamp201" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel>
52      <bezel name="lamp202" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel>
53      <bezel name="lamp203" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel>
54      <bezel name="lamp204" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel>
55      <bezel name="lamp205" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel>
56      <bezel name="lamp206" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel>
57      <bezel name="lamp207" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel>
58      <bezel name="lamp208" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel>
59      <bezel name="lamp209" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel>
60      <bezel name="lamp210" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel>
61      <bezel name="lamp211" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel>
50      <bezel name="lamp200" element="green"><bounds x="4" y="0" width="1" height="1" /></bezel>
51      <bezel name="lamp201" element="green"><bounds x="4" y="2" width="1" height="1" /></bezel>
52      <bezel name="lamp202" element="green"><bounds x="4" y="4" width="1" height="1" /></bezel>
53      <bezel name="lamp203" element="green"><bounds x="4" y="6" width="1" height="1" /></bezel>
54      <bezel name="lamp204" element="green"><bounds x="4" y="8" width="1" height="1" /></bezel>
55      <bezel name="lamp205" element="green"><bounds x="4" y="10" width="1" height="1" /></bezel>
56      <bezel name="lamp206" element="green"><bounds x="4" y="12" width="1" height="1" /></bezel>
57      <bezel name="lamp207" element="green"><bounds x="4" y="14" width="1" height="1" /></bezel>
58      <bezel name="lamp208" element="green"><bounds x="4" y="16" width="1" height="1" /></bezel>
59      <bezel name="lamp209" element="green"><bounds x="4" y="18" width="1" height="1" /></bezel>
60      <bezel name="lamp210" element="green"><bounds x="4" y="20" width="1" height="1" /></bezel>
61      <bezel name="lamp211" element="green"><bounds x="4" y="22" width="1" height="1" /></bezel>
6262
63      <bezel name="lamp300" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel>
64      <bezel name="lamp301" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel>
65      <bezel name="lamp302" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel>
66      <bezel name="lamp303" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel>
67      <bezel name="lamp304" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel>
68      <bezel name="lamp305" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
69      <bezel name="lamp306" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel>
70      <bezel name="lamp307" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel>
71      <bezel name="lamp308" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel>
72      <bezel name="lamp309" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel>
73      <bezel name="lamp310" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel>
74      <bezel name="lamp311" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel>
63      <bezel name="lamp300" element="green"><bounds x="6" y="0" width="1" height="1" /></bezel>
64      <bezel name="lamp301" element="green"><bounds x="6" y="2" width="1" height="1" /></bezel>
65      <bezel name="lamp302" element="green"><bounds x="6" y="4" width="1" height="1" /></bezel>
66      <bezel name="lamp303" element="green"><bounds x="6" y="6" width="1" height="1" /></bezel>
67      <bezel name="lamp304" element="green"><bounds x="6" y="8" width="1" height="1" /></bezel>
68      <bezel name="lamp305" element="green"><bounds x="6" y="10" width="1" height="1" /></bezel>
69      <bezel name="lamp306" element="green"><bounds x="6" y="12" width="1" height="1" /></bezel>
70      <bezel name="lamp307" element="green"><bounds x="6" y="14" width="1" height="1" /></bezel>
71      <bezel name="lamp308" element="green"><bounds x="6" y="16" width="1" height="1" /></bezel>
72      <bezel name="lamp309" element="green"><bounds x="6" y="18" width="1" height="1" /></bezel>
73      <bezel name="lamp310" element="green"><bounds x="6" y="20" width="1" height="1" /></bezel>
74      <bezel name="lamp311" element="green"><bounds x="6" y="22" width="1" height="1" /></bezel>
7575
76      <bezel name="lamp400" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel>
77      <bezel name="lamp401" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel>
78      <bezel name="lamp402" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel>
79      <bezel name="lamp403" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel>
80      <bezel name="lamp404" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel>
81      <bezel name="lamp405" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
82      <bezel name="lamp406" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel>
83      <bezel name="lamp407" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel>
84      <bezel name="lamp408" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel>
85      <bezel name="lamp409" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel>
86      <bezel name="lamp410" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel>
87      <bezel name="lamp411" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel>
76      <bezel name="lamp400" element="green"><bounds x="8" y="0" width="1" height="1" /></bezel>
77      <bezel name="lamp401" element="green"><bounds x="8" y="2" width="1" height="1" /></bezel>
78      <bezel name="lamp402" element="green"><bounds x="8" y="4" width="1" height="1" /></bezel>
79      <bezel name="lamp403" element="green"><bounds x="8" y="6" width="1" height="1" /></bezel>
80      <bezel name="lamp404" element="green"><bounds x="8" y="8" width="1" height="1" /></bezel>
81      <bezel name="lamp405" element="green"><bounds x="8" y="10" width="1" height="1" /></bezel>
82      <bezel name="lamp406" element="green"><bounds x="8" y="12" width="1" height="1" /></bezel>
83      <bezel name="lamp407" element="green"><bounds x="8" y="14" width="1" height="1" /></bezel>
84      <bezel name="lamp408" element="green"><bounds x="8" y="16" width="1" height="1" /></bezel>
85      <bezel name="lamp409" element="green"><bounds x="8" y="18" width="1" height="1" /></bezel>
86      <bezel name="lamp410" element="green"><bounds x="8" y="20" width="1" height="1" /></bezel>
87      <bezel name="lamp411" element="green"><bounds x="8" y="22" width="1" height="1" /></bezel>
8888
89      <bezel name="lamp500" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel>
90      <bezel name="lamp501" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel>
91      <bezel name="lamp502" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel>
92      <bezel name="lamp503" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel>
93      <bezel name="lamp504" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel>
94      <bezel name="lamp505" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel>
95      <bezel name="lamp506" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel>
96      <bezel name="lamp507" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel>
97      <bezel name="lamp508" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel>
98      <bezel name="lamp509" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel>
99      <bezel name="lamp510" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel>
100      <bezel name="lamp511" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel>
89      <bezel name="lamp500" element="green"><bounds x="10" y="0" width="1" height="1" /></bezel>
90      <bezel name="lamp501" element="green"><bounds x="10" y="2" width="1" height="1" /></bezel>
91      <bezel name="lamp502" element="green"><bounds x="10" y="4" width="1" height="1" /></bezel>
92      <bezel name="lamp503" element="green"><bounds x="10" y="6" width="1" height="1" /></bezel>
93      <bezel name="lamp504" element="green"><bounds x="10" y="8" width="1" height="1" /></bezel>
94      <bezel name="lamp505" element="green"><bounds x="10" y="10" width="1" height="1" /></bezel>
95      <bezel name="lamp506" element="green"><bounds x="10" y="12" width="1" height="1" /></bezel>
96      <bezel name="lamp507" element="green"><bounds x="10" y="14" width="1" height="1" /></bezel>
97      <bezel name="lamp508" element="green"><bounds x="10" y="16" width="1" height="1" /></bezel>
98      <bezel name="lamp509" element="green"><bounds x="10" y="18" width="1" height="1" /></bezel>
99      <bezel name="lamp510" element="green"><bounds x="10" y="20" width="1" height="1" /></bezel>
100      <bezel name="lamp511" element="green"><bounds x="10" y="22" width="1" height="1" /></bezel>
101101
102      <bezel name="lamp600" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel>
103      <bezel name="lamp601" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel>
104      <bezel name="lamp602" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel>
105      <bezel name="lamp603" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel>
106      <bezel name="lamp604" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel>
107      <bezel name="lamp605" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel>
108      <bezel name="lamp606" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel>
109      <bezel name="lamp607" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel>
110      <bezel name="lamp608" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel>
111      <bezel name="lamp609" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel>
112      <bezel name="lamp610" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel>
113      <bezel name="lamp611" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel>
102      <bezel name="lamp600" element="green"><bounds x="12" y="0" width="1" height="1" /></bezel>
103      <bezel name="lamp601" element="green"><bounds x="12" y="2" width="1" height="1" /></bezel>
104      <bezel name="lamp602" element="green"><bounds x="12" y="4" width="1" height="1" /></bezel>
105      <bezel name="lamp603" element="green"><bounds x="12" y="6" width="1" height="1" /></bezel>
106      <bezel name="lamp604" element="green"><bounds x="12" y="8" width="1" height="1" /></bezel>
107      <bezel name="lamp605" element="green"><bounds x="12" y="10" width="1" height="1" /></bezel>
108      <bezel name="lamp606" element="green"><bounds x="12" y="12" width="1" height="1" /></bezel>
109      <bezel name="lamp607" element="green"><bounds x="12" y="14" width="1" height="1" /></bezel>
110      <bezel name="lamp608" element="green"><bounds x="12" y="16" width="1" height="1" /></bezel>
111      <bezel name="lamp609" element="green"><bounds x="12" y="18" width="1" height="1" /></bezel>
112      <bezel name="lamp610" element="green"><bounds x="12" y="20" width="1" height="1" /></bezel>
113      <bezel name="lamp611" element="green"><bounds x="12" y="22" width="1" height="1" /></bezel>
114114
115      <bezel name="lamp700" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel>
116      <bezel name="lamp701" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel>
117      <bezel name="lamp702" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel>
118      <bezel name="lamp703" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel>
119      <bezel name="lamp704" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel>
120      <bezel name="lamp705" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel>
121      <bezel name="lamp706" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel>
122      <bezel name="lamp707" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel>
123      <bezel name="lamp708" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel>
124      <bezel name="lamp709" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel>
125      <bezel name="lamp710" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel>
126      <bezel name="lamp711" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel>
115      <bezel name="lamp700" element="green"><bounds x="14" y="0" width="1" height="1" /></bezel>
116      <bezel name="lamp701" element="green"><bounds x="14" y="2" width="1" height="1" /></bezel>
117      <bezel name="lamp702" element="green"><bounds x="14" y="4" width="1" height="1" /></bezel>
118      <bezel name="lamp703" element="green"><bounds x="14" y="6" width="1" height="1" /></bezel>
119      <bezel name="lamp704" element="green"><bounds x="14" y="8" width="1" height="1" /></bezel>
120      <bezel name="lamp705" element="green"><bounds x="14" y="10" width="1" height="1" /></bezel>
121      <bezel name="lamp706" element="green"><bounds x="14" y="12" width="1" height="1" /></bezel>
122      <bezel name="lamp707" element="green"><bounds x="14" y="14" width="1" height="1" /></bezel>
123      <bezel name="lamp708" element="green"><bounds x="14" y="16" width="1" height="1" /></bezel>
124      <bezel name="lamp709" element="green"><bounds x="14" y="18" width="1" height="1" /></bezel>
125      <bezel name="lamp710" element="green"><bounds x="14" y="20" width="1" height="1" /></bezel>
126      <bezel name="lamp711" element="green"><bounds x="14" y="22" width="1" height="1" /></bezel>
127127
128      <bezel name="lamp800" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel>
129      <bezel name="lamp801" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel>
130      <bezel name="lamp802" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel>
131      <bezel name="lamp803" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel>
132      <bezel name="lamp804" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel>
133      <bezel name="lamp805" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel>
134      <bezel name="lamp806" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel>
135      <bezel name="lamp807" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel>
136      <bezel name="lamp808" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel>
137      <bezel name="lamp809" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel>
138      <bezel name="lamp810" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel>
139      <bezel name="lamp811" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel>
128      <bezel name="lamp800" element="green"><bounds x="16" y="0" width="1" height="1" /></bezel>
129      <bezel name="lamp801" element="green"><bounds x="16" y="2" width="1" height="1" /></bezel>
130      <bezel name="lamp802" element="green"><bounds x="16" y="4" width="1" height="1" /></bezel>
131      <bezel name="lamp803" element="green"><bounds x="16" y="6" width="1" height="1" /></bezel>
132      <bezel name="lamp804" element="green"><bounds x="16" y="8" width="1" height="1" /></bezel>
133      <bezel name="lamp805" element="green"><bounds x="16" y="10" width="1" height="1" /></bezel>
134      <bezel name="lamp806" element="green"><bounds x="16" y="12" width="1" height="1" /></bezel>
135      <bezel name="lamp807" element="green"><bounds x="16" y="14" width="1" height="1" /></bezel>
136      <bezel name="lamp808" element="green"><bounds x="16" y="16" width="1" height="1" /></bezel>
137      <bezel name="lamp809" element="green"><bounds x="16" y="18" width="1" height="1" /></bezel>
138      <bezel name="lamp810" element="green"><bounds x="16" y="20" width="1" height="1" /></bezel>
139      <bezel name="lamp811" element="green"><bounds x="16" y="22" width="1" height="1" /></bezel>
140140
141      <bezel name="lamp900" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel>
142      <bezel name="lamp901" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel>
143      <bezel name="lamp902" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel>
144      <bezel name="lamp903" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel>
145      <bezel name="lamp904" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel>
146      <bezel name="lamp905" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel>
147      <bezel name="lamp906" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel>
148      <bezel name="lamp907" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel>
149      <bezel name="lamp908" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel>
150      <bezel name="lamp909" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel>
151      <bezel name="lamp910" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel>
152      <bezel name="lamp911" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel>
141      <bezel name="lamp900" element="green"><bounds x="18" y="0" width="1" height="1" /></bezel>
142      <bezel name="lamp901" element="green"><bounds x="18" y="2" width="1" height="1" /></bezel>
143      <bezel name="lamp902" element="green"><bounds x="18" y="4" width="1" height="1" /></bezel>
144      <bezel name="lamp903" element="green"><bounds x="18" y="6" width="1" height="1" /></bezel>
145      <bezel name="lamp904" element="green"><bounds x="18" y="8" width="1" height="1" /></bezel>
146      <bezel name="lamp905" element="green"><bounds x="18" y="10" width="1" height="1" /></bezel>
147      <bezel name="lamp906" element="green"><bounds x="18" y="12" width="1" height="1" /></bezel>
148      <bezel name="lamp907" element="green"><bounds x="18" y="14" width="1" height="1" /></bezel>
149      <bezel name="lamp908" element="green"><bounds x="18" y="16" width="1" height="1" /></bezel>
150      <bezel name="lamp909" element="green"><bounds x="18" y="18" width="1" height="1" /></bezel>
151      <bezel name="lamp910" element="green"><bounds x="18" y="20" width="1" height="1" /></bezel>
152      <bezel name="lamp911" element="green"><bounds x="18" y="22" width="1" height="1" /></bezel>
153153
154      <bezel name="lamp1000" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel>
155      <bezel name="lamp1001" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel>
156      <bezel name="lamp1002" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel>
157      <bezel name="lamp1003" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel>
158      <bezel name="lamp1004" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel>
159      <bezel name="lamp1005" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel>
160      <bezel name="lamp1006" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel>
161      <bezel name="lamp1007" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel>
162      <bezel name="lamp1008" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel>
163      <bezel name="lamp1009" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel>
164      <bezel name="lamp1010" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel>
165      <bezel name="lamp1011" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel>
154      <bezel name="lamp1000" element="green"><bounds x="20" y="0" width="1" height="1" /></bezel>
155      <bezel name="lamp1001" element="green"><bounds x="20" y="2" width="1" height="1" /></bezel>
156      <bezel name="lamp1002" element="green"><bounds x="20" y="4" width="1" height="1" /></bezel>
157      <bezel name="lamp1003" element="green"><bounds x="20" y="6" width="1" height="1" /></bezel>
158      <bezel name="lamp1004" element="green"><bounds x="20" y="8" width="1" height="1" /></bezel>
159      <bezel name="lamp1005" element="green"><bounds x="20" y="10" width="1" height="1" /></bezel>
160      <bezel name="lamp1006" element="green"><bounds x="20" y="12" width="1" height="1" /></bezel>
161      <bezel name="lamp1007" element="green"><bounds x="20" y="14" width="1" height="1" /></bezel>
162      <bezel name="lamp1008" element="green"><bounds x="20" y="16" width="1" height="1" /></bezel>
163      <bezel name="lamp1009" element="green"><bounds x="20" y="18" width="1" height="1" /></bezel>
164      <bezel name="lamp1010" element="green"><bounds x="20" y="20" width="1" height="1" /></bezel>
165      <bezel name="lamp1011" element="green"><bounds x="20" y="22" width="1" height="1" /></bezel>
166166
167      <bezel name="lamp1100" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel>
168      <bezel name="lamp1101" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel>
169      <bezel name="lamp1102" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel>
170      <bezel name="lamp1103" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel>
171      <bezel name="lamp1104" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel>
172      <bezel name="lamp1105" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel>
173      <bezel name="lamp1106" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel>
174      <bezel name="lamp1107" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel>
175      <bezel name="lamp1108" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel>
176      <bezel name="lamp1109" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel>
177      <bezel name="lamp1110" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel>
178      <bezel name="lamp1111" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel>
167      <bezel name="lamp1100" element="green"><bounds x="22" y="0" width="1" height="1" /></bezel>
168      <bezel name="lamp1101" element="green"><bounds x="22" y="2" width="1" height="1" /></bezel>
169      <bezel name="lamp1102" element="green"><bounds x="22" y="4" width="1" height="1" /></bezel>
170      <bezel name="lamp1103" element="green"><bounds x="22" y="6" width="1" height="1" /></bezel>
171      <bezel name="lamp1104" element="green"><bounds x="22" y="8" width="1" height="1" /></bezel>
172      <bezel name="lamp1105" element="green"><bounds x="22" y="10" width="1" height="1" /></bezel>
173      <bezel name="lamp1106" element="green"><bounds x="22" y="12" width="1" height="1" /></bezel>
174      <bezel name="lamp1107" element="green"><bounds x="22" y="14" width="1" height="1" /></bezel>
175      <bezel name="lamp1108" element="green"><bounds x="22" y="16" width="1" height="1" /></bezel>
176      <bezel name="lamp1109" element="green"><bounds x="22" y="18" width="1" height="1" /></bezel>
177      <bezel name="lamp1110" element="green"><bounds x="22" y="20" width="1" height="1" /></bezel>
178      <bezel name="lamp1111" element="green"><bounds x="22" y="22" width="1" height="1" /></bezel>
179179
180180
181181   </view>
trunk/src/mess/layout/wildfire.lay
r243517r243518
1717<!-- build screen -->
1818
1919   <view name="Test Layout">
20      <bounds left="0" right="64" top="0" bottom="64" />
20      <bounds left="0" right="100" top="0" bottom="100" />
2121      <bezel element="static_black">
22         <bounds left="0" right="64" top="0" bottom="64" />
22         <bounds left="0" right="100" top="0" bottom="100" />
2323      </bezel>
2424
2525      <bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
2626      <bezel name="digit1" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel>
2727      <bezel name="digit2" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel>
2828
29   <!-- 8*13 matrix (first 3 are the 7segs) -->
30
3129      <bezel name="lamp0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel>
3230      <bezel name="lamp1" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel>
3331      <bezel name="lamp2" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel>
r243517r243518
145143      <bezel name="lamp126" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel>
146144      <bezel name="lamp127" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel>
147145
148
149146   </view>
150147</mamelayout>
trunk/src/mess/machine/mbee.c
r243517r243518
8888         break;
8989   }
9090
91   data |= (UINT8)m_b2 << 1; // key pressed on new keyboard
92   data |= 8; // CTS held high via resistor. If low, the disk-based models think a mouse is plugged in.
91   data |= m_mbee256_key_available;
9392
9493   return data;
9594};
r243517r243518
115114
116115READ8_MEMBER( mbee_state::mbee_fdc_status_r )
117116{
118/*  d7 indicate if IRQ or DRQ is occurring (1=happening)
117/*  d7 indicate if IRQ or DRQ is occuring (1=happening)
119118    d6..d0 not used */
120119
121120   return m_fdc_rq ? 0xff : 0x7f;
r243517r243518
165164   It includes up to 4 KB of mask-programmable ROM, 64 bytes of scratchpad RAM and up to 64 bytes
166165   of executable RAM. The MCU also integrates 32-bit I/O and a programmable timer. */
167166
168   UINT8 i, j, pressed;
167   UINT8 i, j;
168   UINT8 pressed[15];
169169
170   // find what has changed
170
171   /* see what is pressed */
172   pressed[0] = m_io_x0->read();
173   pressed[1] = m_io_x1->read();
174   pressed[2] = m_io_x2->read();
175   pressed[3] = m_io_x3->read();
176   pressed[4] = m_io_x4->read();
177   pressed[5] = m_io_x5->read();
178   pressed[6] = m_io_x6->read();
179   pressed[7] = m_io_x7->read();
180   pressed[8] = m_io_x8->read();
181   pressed[9] = m_io_x9->read();
182   pressed[10] = m_io_x10->read();
183   pressed[11] = m_io_x11->read();
184   pressed[12] = m_io_x12->read();
185   pressed[13] = m_io_x13->read();
186   pressed[14] = m_io_x14->read();
187
188   /* find what has changed */
171189   for (i = 0; i < 15; i++)
172190   {
173      pressed = m_io_newkb[i]->read();
174      if (pressed != m_mbee256_was_pressed[i])
191      if (pressed[i] != m_mbee256_was_pressed[i])
175192      {
176         // get scankey value
193         /* get scankey value */
177194         for (j = 0; j < 8; j++)
178195         {
179            if (BIT(pressed^m_mbee256_was_pressed[i], j))
196            if (BIT(pressed[i]^m_mbee256_was_pressed[i], j))
180197            {
181               // put it in the queue
182               m_mbee256_q[m_mbee256_q_pos] = (i << 3) | j | (BIT(pressed, j) ? 0x80 : 0);
198               /* put it in the queue */
199               m_mbee256_q[m_mbee256_q_pos] = (i << 3) | j | (BIT(pressed[i], j) ? 0x80 : 0);
183200               if (m_mbee256_q_pos < 19) m_mbee256_q_pos++;
184201            }
185202         }
186         m_mbee256_was_pressed[i] = pressed;
203         m_mbee256_was_pressed[i] = pressed[i];
187204      }
188205   }
189206
190   // if anything queued, cause an interrupt
207   /* if anything queued, cause an interrupt */
191208   if (m_mbee256_q_pos)
192   {
193      m_b2 = 1; // set irq
194      //breaks keyboard m_pio->port_b_write(pio_port_b_r(generic_space(),0,0xff));
195   }
209      m_mbee256_key_available = 2; // set irq
196210
197211   timer_set(attotime::from_hz(25), TIMER_MBEE256_KBD);
198212}
r243517r243518
207221      for (i = 0; i < m_mbee256_q_pos; i++) m_mbee256_q[i] = m_mbee256_q[i+1]; // ripple queue
208222   }
209223
210   m_b2 = 0; // clear irq
224   m_mbee256_key_available = 0; // clear irq
211225   return data;
212226}
213227
r243517r243518
256270// This doesn't seem to do anything; the time works without it.
257271TIMER_CALLBACK_MEMBER( mbee_state::mbee_rtc_irq )
258272{
259   if (!m_rtc)
260      return;
261
262273   UINT8 data = m_rtc->read(m_maincpu->space(AS_IO), 12);
263274   m_b7_rtc = (data) ? 1 : 0;
264275
r243517r243518
281292
282293    b_mask = total dynamic ram (1=64k; 3=128k; 7=256k)
283294
284    Certain software (such as the PJB system) constantly switch banks around,
285    causing slowness. Therefore this function only changes the banks that need
286    changing, leaving the others as is.
287
288295************************************************************/
289296
290297void mbee_state::setup_banks(UINT8 data, bool first_time, UINT8 b_mask)
r243517r243518
297304   UINT16 b_vid;
298305   char banktag[10];
299306
300   if (first_time || (b_data != m_bank_array[0])) // if same data as last time, leave now
307   if (first_time || (b_data != m_bank_array[0]))
301308   {
302309      m_bank_array[0] = b_data;
303310
r243517r243518
544551   UINT8 *RAM = memregion("maincpu")->base();
545552   m_boot->configure_entries(0, 2, &RAM[0x0000], 0x8000);
546553   m_size = 0x4000;
547   m_has_oldkb = 1;
548554}
549555
550556DRIVER_INIT_MEMBER( mbee_state, mbeeic )
r243517r243518
557563
558564   m_pak->set_entry(0);
559565   m_size = 0x8000;
560   m_has_oldkb = 1;
561566}
562567
563568DRIVER_INIT_MEMBER( mbee_state, mbeepc )
r243517r243518
574579   m_pak->set_entry(0);
575580   m_telcom->set_entry(0);
576581   m_size = 0x8000;
577   m_has_oldkb = 1;
578582}
579583
580584DRIVER_INIT_MEMBER( mbee_state, mbeepc85 )
r243517r243518
591595   m_pak->set_entry(5);
592596   m_telcom->set_entry(0);
593597   m_size = 0x8000;
594   m_has_oldkb = 1;
595598}
596599
597600DRIVER_INIT_MEMBER( mbee_state, mbeeppc )
r243517r243518
613616   m_telcom->set_entry(0);
614617   m_basic->set_entry(0);
615618   m_size = 0x8000;
616   m_has_oldkb = 1;
617619}
618620
619621DRIVER_INIT_MEMBER( mbee_state, mbee56 )
r243517r243518
621623   UINT8 *RAM = memregion("maincpu")->base();
622624   m_boot->configure_entries(0, 2, &RAM[0x0000], 0xe000);
623625   m_size = 0xe000;
624   m_has_oldkb = 1;
625626}
626627
627628DRIVER_INIT_MEMBER( mbee_state, mbee128 )
r243517r243518
640641      membank(banktag)->configure_entries(0, 32, &RAM[0x0000], 0x1000); // RAM banks
641642      membank(banktag)->configure_entries(64, 1, &ROM[0x4000], 0x1000); // dummy rom
642643   }
643
644   timer_set(attotime::from_hz(1), TIMER_MBEE_RTC_IRQ);   /* timer for rtc */
645
646644   m_size = 0x8000;
647   m_has_oldkb = 1;
648645}
649646
650647DRIVER_INIT_MEMBER( mbee_state, mbee256 )
r243517r243518
668665   timer_set(attotime::from_hz(50), TIMER_MBEE256_KBD);   /* timer for kbd */
669666
670667   m_size = 0x8000;
671   m_has_oldkb = 0;
672668}
673669
674670DRIVER_INIT_MEMBER( mbee_state, mbeett )
r243517r243518
689685   timer_set(attotime::from_hz(25), TIMER_MBEE256_KBD);   /* timer for kbd */
690686
691687   m_size = 0x8000;
692   m_has_oldkb = 0;
693688}
694689
695690
trunk/src/mess/osd/windows/windows.mak
r243517r243518
3636
3737$(RESFILE): $(MESS_WINSRC)/mess.rc $(MESS_WINOBJ)/messvers.rc
3838
39$(MESS_WINOBJ)/messvers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
39$(MESS_WINOBJ)/messvers.rc: $(BUILDOUT)/verinfo$(BUILD_EXE) $(SRC)/version.c
4040   @echo Emitting $@...
41   $(PYTHON) $(SRC)/build/verinfo.py -b mess $(SRC)/version.c > $@
No newline at end of file
41   @"$(BUILDOUT)/verinfo$(BUILD_EXE)" -b mess $(SRC)/version.c > $@
No newline at end of file
trunk/src/mess/video/mbee.c
r243517r243518
44    video hardware
55    Juergen Buchmueller <pullmoll@t-online.de>, Dec 1999
66
7    Rewritten by Robbbert
7    Tests of keyboard. Start mbeeic.
88
9    1. Load ASTEROIDS PLUS, stay in attract mode, hold down spacebar,
10        it should only fire bullets. If it sometimes starts turning,
11        thrusting or using the shield, then there is a problem.
12
13    2. Load SCAVENGER and make sure it doesn't go to the next level
14        until you find the Exit.
15
16    3. At the Basic prompt, type in EDASM press enter. At the memory size
17        prompt press enter. Now, make sure the keyboard works properly.
18
19
20
21    TODO:
22
23    1. mbeeppc keyboard response is quite slow. You need to hold each
24    key until it responds. It works much better if you overclock the cpu.
25
926****************************************************************************/
1027
1128
r243517r243518
197214************************************************************/
198215
199216
217/* The direction keys are used by the pc85 menu. Do not know what uses the "insert" key. */
200218void mbee_state::keyboard_matrix_r(int offs)
201219{
202220   UINT8 port = (offs >> 7) & 7;
203221   UINT8 bit = (offs >> 4) & 7;
204   UINT8 data = m_io_oldkb[port]->read();
205   bool keydown  = ( data >> bit ) & 1;
222   UINT8 data = 0;
206223
207   // This adds premium-style cursor keys to the old keyboard
208   // They are used by the pc85 & ppc menu, and the 128k shell.
209   if (!keydown)
224   switch ( port )
210225   {
226      case 0: data = m_io_x0->read(); break;
227      case 1: data = m_io_x1->read(); break;
228      case 2: data = m_io_x2->read(); break;
229      case 3: data = m_io_x3->read(); break;
230      case 4: data = m_io_x4->read(); break;
231      case 5: data = m_io_x5->read(); break;
232      case 6: data = m_io_x6->read(); break;
233      case 7: data = m_io_x7->read(); break;
234   }
235   data  = ( data >> bit ) & 1;
236
237   if ((data | m_is_premium) == 0)
238   {
211239      UINT8 extra = m_io_extra->read();
212240
213      if (extra && port == 7 && bit == 1) keydown = 1;   /* Control */
214
215      if (BIT(extra, 0) && ( port == 0 && bit == 5 )) keydown = 1; // cursor up = ^E
241      if( extra & 0x01 )  /* extra: cursor up */
242      {
243         if( port == 7 && bit == 1 ) data = 1;   /* Control */
244         if( port == 0 && bit == 5 ) data = 1;   /* E */
245      }
216246      else
217      if (BIT(extra, 1) && ( port == 3 && bit == 0 )) keydown = 1; // cursor down = ^X
247      if( extra & 0x02 )  /* extra: cursor down */
248      {
249         if( port == 7 && bit == 1 ) data = 1;   /* Control */
250         if( port == 3 && bit == 0 ) data = 1;   /* X */
251      }
218252      else
219      if (BIT(extra, 2) && ( port == 2 && bit == 3 )) keydown = 1; // cursor left = ^S
253      if( extra & 0x04 )  /* extra: cursor left */
254      {
255         if( port == 7 && bit == 1 ) data = 1;   /* Control */
256         if( port == 2 && bit == 3 ) data = 1;   /* S */
257      }
220258      else
221      if (BIT(extra, 3) && ( port == 0 && bit == 4 )) keydown = 1; // cursor right = ^D
259      if( extra & 0x08 )  /* extra: cursor right */
260      {
261         if( port == 7 && bit == 1 ) data = 1;   /* Control */
262         if( port == 0 && bit == 4 ) data = 1;   /* D */
263      }
222264#if 0
223      // this key doesn't appear on any keyboard afaik. It is a Wordbee function.
265      // this key doesn't appear on any keyboard afaik
224266      else
225      if (BIT(extra, 4) && ( port == 2 && bit == 6 )) keydown = 1;  // insert = ^V
267      if( extra & 0x10 )  /* extra: insert */
268      {
269         if( port == 7 && bit == 1 ) data = 1;   /* Control */
270         if( port == 2 && bit == 6 ) data = 1;   /* V */
271      }
226272#endif
227273   }
228274
229   if( keydown )
275   if( data )
230276   {
231277      m_sy6545_reg[17] = offs;
232278      m_sy6545_reg[16] = (offs >> 8) & 0x3f;
r243517r243518
237283
238284void mbee_state::mbee_video_kbd_scan( int param )
239285{
240   if (m_0b) return; // can't remember why this is here
241   if (param & 15) return; // only scan once per row instead of 16 times
286   if (m_0b) return;
287
242288   keyboard_matrix_r(param);
243289}
244290
r243517r243518
329375
330376************************************************************/
331377
332VIDEO_START_MEMBER( mbee_state, mono )
378VIDEO_START_MEMBER( mbee_state, mbee )
333379{
334380   m_p_videoram = memregion("videoram")->base();
335381   m_p_gfxram = memregion("gfx")->base()+0x1000;
336382   m_is_premium = 0;
337383}
338384
339VIDEO_START_MEMBER( mbee_state, standard )
385VIDEO_START_MEMBER( mbee_state, mbeeic )
340386{
341387   m_p_videoram = memregion("videoram")->base();
342388   m_p_colorram = memregion("colorram")->base();
r243517r243518
344390   m_is_premium = 0;
345391}
346392
347VIDEO_START_MEMBER( mbee_state, premium )
393VIDEO_START_MEMBER( mbee_state, mbeeppc )
348394{
349395   m_p_videoram = memregion("videoram")->base();
350396   m_p_colorram = memregion("colorram")->base();
r243517r243518
361407}
362408
363409
364MC6845_ON_UPDATE_ADDR_CHANGED( mbee_state::crtc_update_addr )
410MC6845_ON_UPDATE_ADDR_CHANGED( mbee_state::mbee_update_addr )
365411{
366// not sure what goes in here - parameters passed are device, address, strobe
367// not used on 256TC
412/* not sure what goes in here - parameters passed are device, address, strobe */
368413}
369414
415MC6845_ON_UPDATE_ADDR_CHANGED( mbee_state::mbee256_update_addr )
416{
417/* not used on 256TC */
418}
370419
420
371421/* monochrome bee */
372MC6845_UPDATE_ROW( mbee_state::mono_update_row )
422MC6845_UPDATE_ROW( mbee_state::mbee_update_row )
373423{
374424   const rgb_t *palette = m_palette->palette()->entry_list_raw();
375425   UINT8 chr,gfx;
r243517r243518
403453   }
404454}
405455
406/* colour bee */
407MC6845_UPDATE_ROW( mbee_state::colour_update_row )
456/* prom-based colours */
457MC6845_UPDATE_ROW( mbee_state::mbeeic_update_row )
408458{
409459   const rgb_t *palette = m_palette->palette()->entry_list_raw();
410   UINT8 inv,attr,gfx,fg,bg;
411   UINT16 mem,x,col,chr;
460   UINT8 chr,gfx,fg,bg;
461   UINT16 mem,x,col;
412462   UINT16 colourm = (m_08 & 0x0e) << 7;
413463   UINT32 *p = &bitmap.pix32(y);
414464
415465   for (x = 0; x < x_count; x++)           // for each character
416466   {
417      inv = 0;
467      UINT8 inv=0;
418468      mem = (ma + x) & 0x7ff;
419469      chr = m_p_videoram[mem];
470      col = m_p_colorram[mem] | colourm;                   // read a byte of colour
471
472      mbee_video_kbd_scan(x+ma);
473
474      /* process cursor */
475      if (x == cursor_x)
476         inv ^= m_sy6545_cursor[ra];          // cursor scan row
477
478      /* get pattern of pixels for that character scanline */
479      gfx = m_p_gfxram[(chr<<4) | ra] ^ inv;
480      fg = (col & 0x001f) | 64;                   // map to foreground palette
481      bg = (col & 0x07e0) >> 5;                   // and background palette
482
483      /* Display a scanline of a character (8 pixels) */
484      *p++ = palette[BIT(gfx, 7) ? fg : bg];
485      *p++ = palette[BIT(gfx, 6) ? fg : bg];
486      *p++ = palette[BIT(gfx, 5) ? fg : bg];
487      *p++ = palette[BIT(gfx, 4) ? fg : bg];
488      *p++ = palette[BIT(gfx, 3) ? fg : bg];
489      *p++ = palette[BIT(gfx, 2) ? fg : bg];
490      *p++ = palette[BIT(gfx, 1) ? fg : bg];
491      *p++ = palette[BIT(gfx, 0) ? fg : bg];
492   }
493}
494
495
496/* new colours & hires2 */
497MC6845_UPDATE_ROW( mbee_state::mbeeppc_update_row )
498{
499   const rgb_t *palette = m_palette->palette()->entry_list_raw();
500   UINT8 gfx,fg,bg;
501   UINT16 mem,x,col,chr;
502   UINT32 *p = &bitmap.pix32(y);
503
504   for (x = 0; x < x_count; x++)           // for each character
505   {
506      UINT8 inv=0;
507      mem = (ma + x) & 0x7ff;
508      chr = m_p_videoram[mem];
420509      col = m_p_colorram[mem];                     // read a byte of colour
421510
422      if (m_is_premium)
511      if (m_1c & 0x80)                     // are extended features enabled?
423512      {
424         if (m_1c & 0x80)                     // are extended features enabled?
425         {
426            attr = m_p_attribram[mem];
513         UINT8 attr = m_p_attribram[mem];
427514
428            if (chr & 0x80)
429               chr += ((attr & 15) << 7);          // bump chr to its particular pcg definition
515         if (chr & 0x80)
516            chr += ((attr & 15) << 7);          // bump chr to its particular pcg definition
430517
431            if (attr & 0x40)
432               inv ^= 0xff;                    // inverse attribute
518         if (attr & 0x40)
519            inv ^= 0xff;                    // inverse attribute
433520
434            if ((attr & 0x80) && (m_framecnt & 0x10))            // flashing attribute
435               chr = 0x20;
436         }
521         if ((attr & 0x80) && (m_framecnt & 0x10))            // flashing attribute
522            chr = 0x20;
437523      }
438      else
439         col |= colourm;
440524
441      if (m_has_oldkb)
442         mbee_video_kbd_scan(x+ma);
525      mbee_video_kbd_scan(x+ma);
443526
444527      /* process cursor */
445528      if (x == cursor_x)
r243517r243518
447530
448531      /* get pattern of pixels for that character scanline */
449532      gfx = m_p_gfxram[(chr<<4) | ra] ^ inv;
533      fg = col & 15;                          // map to foreground palette
534      bg = (col & 0xf0) >> 4;                     // and background palette
450535
451      // get colours
452      if (m_is_premium)
453      {
454         fg = col & 15;
455         bg = (col & 0xf0) >> 4;
456      }
457      else
458      {
459         fg = (col & 0x001f) | 64;
460         bg = (col & 0x07e0) >> 5;
461      }
462
463536      /* Display a scanline of a character (8 pixels) */
464537      *p++ = palette[BIT(gfx, 7) ? fg : bg];
465538      *p++ = palette[BIT(gfx, 6) ? fg : bg];
r243517r243518
479552
480553************************************************************/
481554
482PALETTE_INIT_MEMBER( mbee_state, standard )
555PALETTE_INIT_MEMBER( mbee_state, mbeeic )
483556{
484557   const UINT8 *color_prom = memregion("proms")->base();
485558   UINT16 i;
r243517r243518
537610}
538611
539612
540PALETTE_INIT_MEMBER( mbee_state, premium )
613PALETTE_INIT_MEMBER( mbee_state, mbeeppc )
541614{
542615   UINT16 i;
543616   UINT8 r, b, g;
trunk/src/osd/sdl/draw13.c
r243517r243518
178178   INT32           m_blittimer;
179179
180180#if (SDLMAME_SDL2)
181   //SDL_GLContext   m_gl_context_id;
181   SDL_GLContext   m_gl_context_id;
182182#else
183183   // SDL surface
184184   SDL_Surface         *m_sdlsurf;
trunk/src/osd/sdl/drawogl.c
r243517r243518
28582858       * how to set shader variables. gamma, contrast and brightness are
28592859       * handled already by the core
28602860       */
2861#if 1
2862      vid_attributes[0] = window().machine().options().gamma();
2863      vid_attributes[1] = window().machine().options().contrast();
2864      vid_attributes[2] = window().machine().options().brightness();
2865#else
2866      vid_attributes[0] = settings.gamma;
2867      vid_attributes[1] = settings.contrast;
2868      vid_attributes[2] = settings.brightness;
2869#endif
2861      vid_attributes[0] = settings.m_gamma;
2862      vid_attributes[1] = settings.m_contrast;
2863      vid_attributes[2] = settings.m_brightness;
28702864      vid_attributes[3] = 0.0f;
28712865      uniform_location = pfn_glGetUniformLocationARB(m_glsl_program[shaderIdx], "vid_attributes");
28722866      pfn_glUniform4fvARB(uniform_location, 1, &(vid_attributes[shaderIdx]));
trunk/src/osd/windows/windows.mak
r243517r243518
502502
503503$(RESFILE): $(WINSRC)/mame.rc $(WINOBJ)/mamevers.rc
504504
505$(WINOBJ)/mamevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
505$(WINOBJ)/mamevers.rc: $(BUILDOUT)/verinfo$(BUILD_EXE) $(SRC)/version.c
506506   @echo Emitting $@...
507   $(PYTHON) $(SRC)/build/verinfo.py -b mame $(SRC)/version.c > $@
507   @"$(BUILDOUT)/verinfo$(BUILD_EXE)" -b mame $(SRC)/version.c > $@
trunk/src/ume/osd/windows/windows.mak
r243517r243518
3636
3737$(RESFILE): $(UME_WINSRC)/ume.rc $(UME_WINOBJ)/umevers.rc
3838
39$(UME_WINOBJ)/umevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
39$(UME_WINOBJ)/umevers.rc: $(BUILDOUT)/verinfo$(BUILD_EXE) $(SRC)/version.c
4040   @echo Emitting $@...
41   $(PYTHON) $(SRC)/build/verinfo.py -b ume $(SRC)/version.c > $@
No newline at end of file
41   @"$(BUILDOUT)/verinfo$(BUILD_EXE)" -b ume $(SRC)/version.c > $@
No newline at end of file


Previous 199869 Revisions Next


© 1997-2024 The MAME Team