Skip to content

Commit 5b8eb94

Browse files
committed
Replace the nec_fip80b5r layout with an esq2by40_vfx layout that uses an led14seg element, a doit element and an underline one.
led14segsc would add a redundant and inaccurate "comma tail".
1 parent 766f10f commit 5b8eb94

File tree

3 files changed

+162
-303
lines changed

3 files changed

+162
-303
lines changed

src/mame/ensoniq/esqvfd.cpp

Lines changed: 101 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#include "esq1by22.lh"
1212
#include "esq2by40.lh"
13-
#include "nec_fip80b5r.lh"
13+
#include "esq2by40_vfx.lh"
1414

1515
DEFINE_DEVICE_TYPE(ESQ1X22, esq1x22_device, "esq1x22", "Ensoniq 1x22 VFD")
1616
DEFINE_DEVICE_TYPE(ESQ2X40, esq2x40_device, "esq2x40", "Ensoniq 2x40 VFD")
@@ -119,129 +119,107 @@ static const uint16_t font[]=
119119
};
120120

121121
/**
122-
* The font used by the VFX family on the NEC FIP80B5R display, including
123-
* VFX-family-specific characters sich as digits followed by a period / decimal point.
124-
*
125-
* The segments are numbered in order of the pins 58 .. 73 that drive
126-
* the top row of character segments, as shown on a scan of the Ensoniq ESQ1
127-
* display board at http://buchty.net/ensoniq/files/schematics/esq1-display.jpg
128-
* This is the same order as in the [nec_fip80b5r.lay] layout, so they can be
129-
* used immediately without need for bit order conversion.
130-
*
131-
* ==== 0 ====
132-
* |\ | /|
133-
* | \ | / |
134-
* 5 4 3 2 1
135-
* | \ | / |
136-
* | \|/ |
137-
* ==7== ==6==
138-
* | /|\ |
139-
* | / | \ |
140-
* 12 11 10 9 8
141-
* | / | \ |
142-
* |/ | \|
143-
* ==== 13 === #14
144-
*
145-
* ===== 15 ====
146-
*
122+
* Character data as used in the VFX family. Bit 0..13 are ordered to match
123+
* led14seg. Bit 14 activates the dot after a character; bit 15 the underline.
124+
* See layout/esq2by40_vfx.lay .
147125
*/
148126
static const uint16_t font_vfx[] = {
149-
0x0000, // 0000 0000 0000 0000 SPACE
150-
0x7927, // 0011 1001 0010 0111 '0.'
151-
0x0028, // 0000 0000 0010 1000 '"'
152-
0x4408, // 0000 0100 0000 1000 '1.'
153-
0x25e9, // 0010 0101 1110 1001 '$'
154-
0x70c3, // 0011 0000 1100 0011 '2.'
155-
0x0000, // 0000 0000 0000 0000 '&'
156-
0x0010, // 0000 0000 0001 0000 '''
157-
0x61c3, // 0010 0001 1100 0011 '3.'
158-
0x41e2, // 0000 0001 1110 0010 '4.'
159-
0x0edc, // 0000 1110 1101 1100 '*'
160-
0x04c8, // 0000 0100 1100 1000 '+'
161-
0x0000, // 0000 0000 0000 0000 ','
162-
0x00c0, // 0000 0000 1100 0000 '-'
163-
0x4000, // 0100 0000 0000 0000 '.'
164-
0x0804, // 0000 1000 0000 0100 '/'
165-
0x3927, // 0011 1001 0010 0111 '0'
166-
0x0408, // 0000 0100 0000 1000 '1'
167-
0x30c3, // 0011 0000 1100 0011 '2'
168-
0x21c3, // 0010 0001 1100 0011 '3'
169-
0x01e2, // 0000 0001 1110 0010 '4'
170-
0x21e1, // 0010 0001 1110 0001 '5'
171-
0x31e1, // 0011 0001 1110 0001 '6'
172-
0x0103, // 0000 0001 0000 0011 '7'
173-
0x31e3, // 0011 0001 1110 0011 '8'
174-
0x21e3, // 0010 0001 1110 0011 '9'
175-
0x0000, // 0000 0000 0000 0000 ':'
176-
0x71e1, // 0011 0001 1110 0001 '6.'
177-
0x0204, // 0000 0010 0000 0100 '('
178-
0x20c0, // 0010 0000 1100 0000 '='
179-
0x0810, // 0000 1000 0001 0000 ')'
180-
0x0000, // 0000 0000 0000 0000 '?'
181-
0x3583, // 0011 0101 1000 0011 '@'
182-
0x11e3, // 0001 0001 1110 0011 'A'
183-
0x254b, // 0010 0101 0100 1011 'B'
184-
0x3021, // 0011 0000 0010 0001 'C'
185-
0x250b, // 0010 0101 0000 1011 'D'
186-
0x30e1, // 0011 0000 1110 0001 'E'
187-
0x10e1, // 0001 0000 1110 0001 'F'
188-
0x3161, // 0011 0001 0110 0001 'G'
189-
0x11e2, // 0001 0001 1110 0010 'H'
190-
0x2409, // 0010 0100 0000 1001 'I'
191-
0x3102, // 0011 0001 0000 0010 'J'
192-
0x12a4, // 0001 0010 1010 0100 'K'
193-
0x3020, // 0011 0000 0010 0000 'L'
194-
0x1136, // 0001 0001 0011 0110 'M'
195-
0x1332, // 0001 0011 0011 0010 'N'
196-
0x3123, // 0011 0001 0010 0011 'O'
197-
0x10e3, // 0001 0000 1110 0011 'P'
198-
0x3323, // 0011 0011 0010 0011 'Q'
199-
0x12e3, // 0001 0010 1110 0011 'R'
200-
0x21e1, // 0010 0001 1110 0001 'S'
201-
0x0409, // 0000 0100 0000 1001 'T'
202-
0x3122, // 0011 0001 0010 0010 'U'
203-
0x1824, // 0001 1000 0010 0100 'V'
204-
0x1b22, // 0001 1011 0010 0010 'W'
205-
0x0a14, // 0000 1010 0001 0100 'X'
206-
0x0414, // 0000 0100 0001 0100 'Y'
207-
0x2805, // 0010 1000 0000 0101 'Z'
208-
0x3021, // 0011 0000 0010 0001 '['
209-
0x71e3, // 0011 0001 1110 0011 '8.'
210-
0x2103, // 0010 0001 0000 0011 ']'
211-
0x0a00, // 0000 1010 0000 0000 '^'
212-
0x2000, // 0010 0000 0000 0000 '_'
213-
0x0010, // 0000 0000 0001 0000 '`'
214-
0x11e3, // 0001 0001 1110 0011 'a'
215-
0x254b, // 0010 0101 0100 1011 'b'
216-
0x3021, // 0011 0000 0010 0001 'c'
217-
0x250b, // 0010 0101 0000 1011 'd'
218-
0x30e1, // 0011 0000 1110 0001 'e'
219-
0x10e1, // 0001 0000 1110 0001 'f'
220-
0x3161, // 0011 0001 0110 0001 'g'
221-
0x11e2, // 0001 0001 1110 0010 'h'
222-
0x2409, // 0010 0100 0000 1001 'i'
223-
0x3102, // 0011 0001 0000 0010 'j'
224-
0x12a4, // 0001 0010 1010 0100 'k'
225-
0x3020, // 0011 0000 0010 0000 'l'
226-
0x1136, // 0001 0001 0011 0110 'm'
227-
0x1332, // 0001 0011 0011 0010 'n'
228-
0x3123, // 0011 0001 0010 0011 'o'
229-
0x10e3, // 0001 0000 1110 0011 'p'
230-
0x3323, // 0011 0011 0010 0011 'q'
231-
0x12e3, // 0001 0010 1110 0011 'r'
232-
0x21e1, // 0010 0001 1110 0001 's'
233-
0x0409, // 0000 0100 0000 1001 't'
234-
0x3122, // 0011 0001 0010 0010 'u'
235-
0x1824, // 0001 1000 0010 0100 'v'
236-
0x1b22, // 0001 1011 0010 0010 'w'
237-
0x0a14, // 0000 1010 0001 0100 'x'
238-
0x0414, // 0000 0100 0001 0100 'y'
239-
0x2805, // 0010 1000 0000 0101 'z'
240-
0x3021, // 0011 0000 0010 0001 '{'
241-
0x0408, // 0000 0100 0000 1000 '|'
242-
0x2103, // 0010 0001 0000 0011 '}'
243-
0x0a00, // 0000 1010 0000 0000 '~'
244-
0x0000, // 0000 0000 0000 0000 DEL
127+
0x0000, // 0000 0000 0000 0000 SPACE
128+
0x543f, // 0101 0100 0011 1111 '0.'
129+
0x0120, // 0000 0001 0010 0000 '"'
130+
0x4300, // 0100 0011 0000 0000 '1.'
131+
0x03ed, // 0000 0011 1110 1101 '$'
132+
0x40db, // 0100 0000 1101 1011 '2.'
133+
0x0000, // 0000 0000 0000 0000 '&'
134+
0x0800, // 0000 1000 0000 0000 '''
135+
0x40cf, // 0100 0000 1100 1111 '3.'
136+
0x40e6, // 0100 0000 1110 0110 '4.'
137+
0x3fc0, // 0011 1111 1100 0000 '*'
138+
0x03c0, // 0000 0011 1100 0000 '+'
139+
0x0000, // 0000 0000 0000 0000 ','
140+
0x00c0, // 0000 0000 1100 0000 '-'
141+
0x4000, // 0100 0000 0000 0000 '.'
142+
0x1400, // 0001 0100 0000 0000 '/'
143+
0x143f, // 0001 0100 0011 1111 '0'
144+
0x0300, // 0000 0011 0000 0000 '1'
145+
0x00db, // 0000 0000 1101 1011 '2'
146+
0x00cf, // 0000 0000 1100 1111 '3'
147+
0x00e6, // 0000 0000 1110 0110 '4'
148+
0x00ed, // 0000 0000 1110 1101 '5'
149+
0x00fd, // 0000 0000 1111 1101 '6'
150+
0x0007, // 0000 0000 0000 0111 '7'
151+
0x00ff, // 0000 0000 1111 1111 '8'
152+
0x00ef, // 0000 0000 1110 1111 '9'
153+
0x0000, // 0000 0000 0000 0000 ':'
154+
0x40fd, // 0100 0000 1111 1101 '6.'
155+
0x3000, // 0011 0000 0000 0000 '('
156+
0x00c8, // 0000 0000 1100 1000 '='
157+
0x0c00, // 0000 1100 0000 0000 ')'
158+
0x0000, // 0000 0000 0000 0000 '?'
159+
0x025f, // 0000 0010 0101 1111 '@'
160+
0x00f7, // 0000 0000 1111 0111 'A'
161+
0x038f, // 0000 0011 1000 1111 'B'
162+
0x0039, // 0000 0000 0011 1001 'C'
163+
0x030f, // 0000 0011 0000 1111 'D'
164+
0x00f9, // 0000 0000 1111 1001 'E'
165+
0x00f1, // 0000 0000 1111 0001 'F'
166+
0x00bd, // 0000 0000 1011 1101 'G'
167+
0x00f6, // 0000 0000 1111 0110 'H'
168+
0x0309, // 0000 0011 0000 1001 'I'
169+
0x001e, // 0000 0000 0001 1110 'J'
170+
0x3070, // 0011 0000 0111 0000 'K'
171+
0x0038, // 0000 0000 0011 1000 'L'
172+
0x1836, // 0001 1000 0011 0110 'M'
173+
0x2836, // 0010 1000 0011 0110 'N'
174+
0x003f, // 0000 0000 0011 1111 'O'
175+
0x00f3, // 0000 0000 1111 0011 'P'
176+
0x203f, // 0010 0000 0011 1111 'Q'
177+
0x20f3, // 0010 0000 1111 0011 'R'
178+
0x00ed, // 0000 0000 1110 1101 'S'
179+
0x0301, // 0000 0011 0000 0001 'T'
180+
0x003e, // 0000 0000 0011 1110 'U'
181+
0x1430, // 0001 0100 0011 0000 'V'
182+
0x2436, // 0010 0100 0011 0110 'W'
183+
0x3c00, // 0011 1100 0000 0000 'X'
184+
0x1a00, // 0001 1010 0000 0000 'Y'
185+
0x1409, // 0001 0100 0000 1001 'Z'
186+
0x0039, // 0000 0000 0011 1001 '['
187+
0x40ff, // 0100 0000 1111 1111 '8.'
188+
0x000f, // 0000 0000 0000 1111 ']'
189+
0x2400, // 0010 0100 0000 0000 '^'
190+
0x0008, // 0000 0000 0000 1000 '_'
191+
0x0800, // 0000 1000 0000 0000 '`'
192+
0x00f7, // 0000 0000 1111 0111 'a'
193+
0x038f, // 0000 0011 1000 1111 'b'
194+
0x0039, // 0000 0000 0011 1001 'c'
195+
0x030f, // 0000 0011 0000 1111 'd'
196+
0x00f9, // 0000 0000 1111 1001 'e'
197+
0x00f1, // 0000 0000 1111 0001 'f'
198+
0x00bd, // 0000 0000 1011 1101 'g'
199+
0x00f6, // 0000 0000 1111 0110 'h'
200+
0x0309, // 0000 0011 0000 1001 'i'
201+
0x001e, // 0000 0000 0001 1110 'j'
202+
0x3070, // 0011 0000 0111 0000 'k'
203+
0x0038, // 0000 0000 0011 1000 'l'
204+
0x1836, // 0001 1000 0011 0110 'm'
205+
0x2836, // 0010 1000 0011 0110 'n'
206+
0x003f, // 0000 0000 0011 1111 'o'
207+
0x00f3, // 0000 0000 1111 0011 'p'
208+
0x203f, // 0010 0000 0011 1111 'q'
209+
0x20f3, // 0010 0000 1111 0011 'r'
210+
0x00ed, // 0000 0000 1110 1101 's'
211+
0x0301, // 0000 0011 0000 0001 't'
212+
0x003e, // 0000 0000 0011 1110 'u'
213+
0x1430, // 0001 0100 0011 0000 'v'
214+
0x2436, // 0010 0100 0011 0110 'w'
215+
0x3c00, // 0011 1100 0000 0000 'x'
216+
0x1a00, // 0001 1010 0000 0000 'y'
217+
0x1409, // 0001 0100 0000 1001 'z'
218+
0x0039, // 0000 0000 0011 1001 '{'
219+
0x0300, // 0000 0011 0000 0000 '|'
220+
0x000f, // 0000 0000 0000 1111 '}'
221+
0x2400, // 0010 0100 0000 0000 '~'
222+
0x0000, // 0000 0000 0000 0000 DEL
245223
};
246224

247225
esqvfd_device::esqvfd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, dimensions_param &&dimensions) :
@@ -446,7 +424,7 @@ void esq2x40_vfx_device::update_display()
446424

447425
void esq2x40_vfx_device::device_add_mconfig(machine_config &config)
448426
{
449-
config.set_default_layout(layout_nec_fip80b5r);
427+
config.set_default_layout(layout_esq2by40_vfx);
450428
}
451429

452430
void esq2x40_vfx_device::set_blink_on(bool blink_on) {

src/mame/layout/esq2by40_vfx.lay

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
license:CC0-1.0
4+
-->
5+
<!-- 2012-05-26: Initial version. [R. Belmont / VFDGen 0.1] -->
6+
7+
<mamelayout version="2">
8+
9+
<element name="segments" defstate="0">
10+
<led14seg>
11+
<color red="0.45" green="1.0" blue="0.95" />
12+
</led14seg>
13+
</element>
14+
15+
<element name="dot" defstate="0">
16+
<disk statemask="0x4000" state="0"><color red="0.06" green="0.12" blue="0.10" /></disk>
17+
<disk statemask="0x4000" state="0x4000"><color red="0.45" green="1.00" blue="0.95" /></disk>
18+
</element>
19+
20+
<element name="underline" defstate="0">
21+
<rect statemask="0x8000" state="0"><color red="0.06" green="0.12" blue="0.10" /></rect>
22+
<rect statemask="0x8000" state="0x8000"><color red="0.45" green="1.00" blue="0.95" /></rect>
23+
</element>
24+
25+
<group name="vfd_cell">
26+
<bounds x="0" y="0" width="342" height="527" />
27+
<element ref="segments" name="~input~"><bounds x="50" y="69" width="214" height="311" /></element>
28+
<element ref="dot" name="~input~"><bounds x="253" y="337" width="42" height="42" /></element>
29+
<element ref="underline" name="~input~"><bounds x="43" y="441" width="183" height="25" /></element>
30+
</group>
31+
32+
<element name="vfd_background">
33+
<rect>
34+
<bounds x="0" y="0" width="13680" height="1144" />
35+
<color red="0.0" reggn="0.0" blue="0.0" />
36+
</rect>
37+
</element>
38+
39+
<view name="Default Layout">
40+
41+
<element ref="vfd_background" />
42+
43+
<!-- VFDs -->
44+
<repeat count="2">
45+
<param name="s" start="0" increment="40" />
46+
<param name="y" start="0" increment="572" />
47+
<repeat count="40">
48+
<param name="n" start="~s~" increment="1" />
49+
<param name="x" start="0" increment="342" />
50+
51+
<param name="input" value="vfd~n~" />
52+
<group ref="vfd_cell">
53+
<bounds x="~x~" y="~y~" width="342" height="572" />
54+
</group>
55+
56+
</repeat>
57+
</repeat>
58+
59+
</view>
60+
61+
</mamelayout>

0 commit comments

Comments
 (0)